web-dev-qa-db-fra.com

Supprimer la colonne Count en répétant les lignes dans Google Sheets

J'ai une feuille de calcul, "wi", dans une feuille Google similaire à l'exemple suivant, mais avec un nombre indéterminé de lignes:

  Count | Entry |   Description   
 -------|-------|----------------- 
      2 | Foo   | yada yada       
      3 | Bar   | blah blah blah  

Sur une autre feuille de calcul, je veux répéter chacun (pas l'en-tête) dans 'wi' par le comte de telle sorte que:

  Entry |   Description   
 -------|----------------- 
  Foo   | yada yada       
  Foo   | yada yada       
  Bar   | blah blah blah  
  Bar   | blah blah blah  
  Bar   | blah blah blah

Une formule personnalisée est meilleure qu'une composition de formule noueuse, mais une solution intégrée intégrée qui est propre et gérable est préférable au code.

1
Tom

Avec les tableaux, vous pouvez le faire:

  Count | Entry |   Description   
 -------|-------|----------------- 
      2 | Foo   | yada yada       
      3 | Bar   | blah blah blah  

Utiliser ceci avec " Count " dans A1; " Description " dans C1; etc..

={B1:C1; transpose(ArrayFormula(SPLIT(transpose(ArrayFormula((REPT(B2:C2&",",A2)))),",",true,true)));transpose(ArrayFormula(SPLIT(transpose(ArrayFormula((REPT(B3:C3&",",A3)))),",",true,true)))}

Résultat :

  Entry |   Description   
 -------|----------------- 
   Foo  | yada yada  
   Foo  | yada yada 
   Bar  | blah blah blah
   Bar  | blah blah blah
   Bar  | blah blah blah  

Exemple de travail dans A5

Modifier: nouvelle solution à l'aide de la colonne

    =transpose(split(TEXTJOIN(",",true,transpose(ArrayFormula(REPT(B2:B100&",",$A2:$A100)))),",",true,true))

Maintenant, pour l'utiliser, il vous suffit de le développer sur chaque colonne. N'oubliez pas de modifier la plage que j'ai utilisée (B2:B100 Et $A2:$A100)

Edit 2: Ajout d'une vérification au cas où une cellule de la plage d'origine est vide:

=transpose(split(TEXTJOIN(",",true,transpose(ArrayFormula(REPT(ArrayFormula(IF(B2:B4<>"",B2:B4,"BLANK CELL"))&",",$A2:$A4)))),",",true,true))

N'oubliez pas de le développer pour chaque colonne.

0
pjmg
=ARRAYFORMULA(SPLIT(TRANSPOSE(SPLIT(CONCATENATE(
 REPT({wi!B2:B&"♦"&wi!C2:C}&"♥", wi!A2:A)), "♥")), "♦"))

enter image description here

1
user0