- ベストアンサー
エクセルの行追加
下記の表でA列の番号が変わったところに自動で行を挿入する方法を教えて下さい。 A列 B列 1行 123 酒 2行 123 酒 3行 123 酒 4行 215 ビール 5行 215 ビール 6行 324 ワイン 7行 324 ワイン 3行目の下、5行目の下に一度に行を挿入したいのですが。 実際のデータは3千行ほどあり、番号も100種類ほどあります。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! データは1行目からだとして・・・ VBAになってしまいますが、一例です。 A列データの途中に空白セルがないという前提です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i As Long For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 If Cells(i, 1) <> Cells(i + 1, 1) Then Rows(i + 1).Insert End If Next i End Sub 'この行まで 尚、一旦マクロを実行すると元に戻せませんので、 別Sheetでマクロを試してみてください。m(_ _)m
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
関数を使って行う方法です。 データは2行目から下方に入力されているとします。 C2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,"")) D1セルには作業列とでも入力したのちにD2セルには次の式を入力してA列のデータが有る最終行まで下方にドラッグコピーします。 =A2 D列の下方へのドラッグコピーが終わった、その次の行のD列に次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MAX(C:C),"",INDEX(A:A,MATCH(ROW(A1),C:C,0))) 最後にA列からD列までを範囲として選択してから「ホーム」タブの「並べ替えとフィルター」で「ユーザー設定の並べ替え」をクリックします。 「先頭行をデータの見出しとして使用する」にチェックをしてから優先されるキーの窓では「作業列」を指定し、順序は「昇順」にしてOKします。 これでA列には空白の行が挿入されますので、操作が正しく行われたことを確認して作業列であるCおよびD列を削除すれば完成です。
お礼
早速のご回答ありがとうございます。 完璧にできました。かなりの時間短縮につながります。 本当にありがとうございました。