質問: 【エクセル】空セルを埋める方法 お世話になります。 下記のような表があります。 1行目:aaa,bbb,ccc,ddd 2行目:空セル,bbb,ccc,ddd 3行目:空セル,bbb,ccc,ddd 4行目:aaa,bbb,ccc,ddd 5行目:空セル,bbb,ccc,ddd ・・・ こんなパターンの行が結構あります。 空セル部分を下記のように埋めたいのですが 1行目:aaa,bbb,ccc,ddd 2行目:aaa,bbb,ccc,ddd 3行目:aaa,bbb,ccc,ddd 4行目:aaa,bbb,ccc,ddd 5行目:aaa,bbb,ccc,ddd てっとり早く埋める方法ありませんか? いまは、【ctrl+↓】 ⇒【↑】⇒【ctrl+d】を延々繰り返しています。 宜しくお願いいたします。
回答: こんにちは! vbaでやれば簡単ですが、関数での方法の一例です。 お示しの配置として・・・1000行目まで対応できる数式です。 e1セルに =if(counta(a$1:a$1000)"",row($a$1:$a$1000)),row(a1)))) これは配列数式になりますので、この画面からe1セルにコピー&ペーストの後に f2キーを押す、またはe1セルをダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、shift+ctrlキーを押しながらenterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これをh1セルまでオートフィルでコピーの後そのまま下へずぃ~~~!っとコピーして見てください。 そしてe~h列すべてを範囲指定 → 右クリック → コピー → a列を選択 → 「形式を選択して貼り付け」 最後にe~h列を削除して完了です。 尚、余計なお世話かもしれませんがvbaでの場合は 操作したいsheet見出し上で右クリック → コードの表示 → vbe画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 尚、一旦マクロを実行すると元に戻せませんので、別sheetで試してみてください。 sub test() 'この行から dim i, j, k as long k = activesheet.usedrange.rows.count for i = k to 1 step -1 for j = 1 to cells(1, columns.count).end(xltoleft).column if cells(i, j) = "" then cells(i, j).delete (xlup) end if next j next i end sub 'この行まで 参考になれば良いのですが・・・m(__)m