• ベストアンサー

Excelで1行を複数行に分割する方法

おそらくVBAが必要な気がするのですが、やり方が 分からないので教えて下さい。 添付画像の様に、1つの品番に対して複数の複数のデータ(カテゴリ)が入っています。 1つの品番に対して複数データが入っている場合、それを複数の行として分割処理したいです。 よろしくお願いいたします。m(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

VBAを使わずにやりたいと言うことでしょうか? 一例です。 F2~I2に以下の式を入れます。 F2:=""&OFFSET($A$1,H2,0) G2:=""&OFFSET($A$1,H2,I2) H2:=IF(I2>1,H1,H1+1) I2:=IF(OFFSET(A$1,H1,I1+1)<>"",I1+1,1) F2:I2を下方向にコピーして下さい。

KENJI2018
質問者

お礼

ありがとうございました!ばっちり再現できました! VBAを使わないと出来ないと思ってましたが、考え方次第なんですね。。 OFFSET、理解できてませんが勉強したいと思います! 早急なご対応、ありがとうございました。 m(_ _)m

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

VBAでは、初歩的、ルーチン的やり方でできる。 繰り返し法。 ーー 例データ A りんご バナナ すいか B いちご もも C いちご ーーー 標準モジュールに Sub test01() '白紙シートSheet2 を用意 Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") K = 2 ’アウトプットが第2行から lr = sh1.Range("A100000").End(xlUp).Row ’データ最終行の割り出し For i = 1 To lr rc = sh1.Cells(i, "xfd").End(xlToLeft).Column  ’データ最右列の割り出し 'MsgBox rc For j = 2 To rc sh2.Cells(K, "A") = sh1.Cells(i, "A") sh2.Cells(K, "B") = sh1.Cells(i, j) K = K + 1 Next j Next i End Sub ーーー 結果 Sheet2のA2:B7  A りんご A バナナ A すいか B いちご B もも C いちご

関連するQ&A