いまだにそんなExcelファイルがあるんですかとか言わないでください
業務効率化の目的でもらった社内ファイルがゴリゴリにセル結合していました。
とりあえずデータベースとして使えるようにデータ成形をしようと思います。
全部で4,000行弱あったので、手作業でできるわけがないのでVBAでやりました。
かなりデフォルメしていますが、こんな感じの表が4,000行くらい続いています。
ここから、セル結合を解除して、B列を埋めていきます。
結合解除後
B列がスカスカですね。このままでは、まともなデータベースとして使えないので、ここからVBAを書いて一気に仕上げます。
Sub remakedata()
Dim i As Long
Dim LastRow As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") 'シート名を変数に格納
LastRow = ws.Cells(Rows.Count, 3).End(xlUp).Row 'C列の最終行
For i = 4 To LastRow '4行目から最終行までループ
If ws.Cells(i, 2) = "" Then 'B4セルから下が空白なら
ws.Cells(i, 2) = ws.Cells(i - 1, 2) 'ひとつ上のセルをコピー
End If
Next i
End Sub
実際のファイルでは体感でだいたい3~5分くらいかかりました。メモリ8Gのパソコンなので、もっとスペックの高いパソコンならもっと実行速度は速くなると思います。