web-dev-qa-db-ja.com

Googleスプレッドシートで行を繰り返してCount列を削除する

次の例のようなワークシート「wi」がGoogleシートにありますが、行数が未定です。

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

別のワークシートで、次のようにカウントごとに「wi」で(ヘッダーではなく)それぞれを繰り返します。

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

カスタム式は危険な式の構成よりも優れていますが、コードよりもクリーンで管理しやすい既存の組み込みのソリューションが推奨されます。

1
Tom

配列でそれを行うことができます:

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

これを_A1_の "Count"と組み合わせて使用​​します。 "Description" in _C1_;等..

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

結果:

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

_A5_ の使用例

編集:列を使用した新しいソリューション

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

これを使用するには、すべての列で展開する必要があります。使用した範囲を変更することを忘れないでください(_B2:B100_および_$A2:$A100_)

編集2:元の範囲のセルが空白の場合のチェックが追加されました。

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

すべての列で展開することを忘れないでください。

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

enter image description here

1
user0