• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでの行のまとめ方)

エクセルでの行のまとめ方

このQ&Aのポイント
  • エクセルでデータの塊を1行にまとめたい方法について教えてください。
  • データが複数行に分かれている場合、1行目の後に2行目を貼り付ける方法を教えてください。
  • データの塊とは、データが複数行に分かれているグループのことを指します。空白行が塊の間にあります。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

(数式ではなく)生データが記入されているとします それぞれのカタマリは,確実に「空っぽの行」で区切られているとします。 sub macro1()  dim w0 as worksheet, w as worksheet  dim ha as range, h as range  dim r as long, c as long  set w0 = activesheet  set w = worksheets.add(before:=activesheet)  for each ha in w0.range("A:A").specialcells(xlcelltypeconstants).areas   r = r + 1   c = 0   for each h in ha.currentregion    if h <> "" then     c = c + 1     w.cells(r, c).value = h.value    end if   next  next end sub

poppoyaya
質問者

お礼

ありがとうございます。 期待通りの動きになっています。 ご回答頂いたマクロを基に勉強も行います。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

マクロを組まれるほどのこともないでしょう。下記のように関数で対応することができます。 例えばお示しの最初の表がA列からC列の間に1行目から下方に入力されているとします。 お求めの表をE列からJ列に表示させるとしたらE1セルに次の式を入力して右横方向にJ1セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(OR(COLUMN(A1)>6,INDEX($A:$C,(ROW(A1)-1)*3+ROUNDUP(COLUMN(A1)/3,0),MOD(COLUMN(A1)-1,3)+1)=0),"",INDEX($A:$C,(ROW(A1)-1)*3+ROUNDUP(COLUMN(A1)/3,0),MOD(COLUMN(A1)-1,3)+1))

poppoyaya
質問者

お礼

ありがとうございます。 うまく関数が動かなかったのですが、マクロで処理したかった理由は下記があります。 1.データの塊が数100以上ある。 2.行をまとめたいのであって、一つのセルにはまとめたくない。