Excelデータを扱っていると、
縦方向の一番上には入力されていて、
下に連続して同じデータが入力されていないため
下図のようなデータになっている時があります。
こんな時に、ピボットテーブルなどで、
テーブル化や、データベース化したい場合、
便利な方法がありますので紹介します。
それはマクロを使う方法です。
上のセルをコピーして繰り返し貼り付け(コピペ)作業を
自動で処理するものです。
記事の最後に無料のマクロのコードサンプルを
ダウンロードできるようにしてあります。
このマクロを実行すると、
上のセルに入力された担当者の名前を
下にコピーする作業を繰り返すようになっています。
(完成形のイメージは下図)
【使用時の注意事項】
1.コピー処理される縦列は
マクロ実行時に選択しているセルの
タテ列に対してコピーが実行されます
2.一番上のセルまでデータが入ってる必要があります
空白にしたい場合でも仮にデータを入力しておくと
コピーが実行されます。
3.連続コピーしたい右側のタテ列には
連続したデータがなければ実行されません
連続コピー処理されるデータ下限は
マクロ開始時に選択されてるセルの
右隣りのセルの最終行まで(この図では12行目)
サンプルファイルはこちらから無料ダウンロードできます。
マクロ付きエクセルファイルuekopi
Zip圧縮ファイルuekopi
マクロのプログラムコードだけで良い方は
以下のマクロをコピーしてお使いください。
(自己責任でお願いします)
:::::以下マクロに貼り付ける内容です:::::
Sub ウエコピ()
'連続データの中に空白があったとき、上の値をコピーして下の空白セルに貼り付けます。
'(注意)マクロ実行前に選択した列が対象です。
Dim i As Long
Dim myCol As Long '現在の列位置
Dim startRow As Long '開始行番号
Dim Ccnt As Long '現在の列の行数
myCol = ActiveCell.Column
startRow = 1 '1行目から開始
With ActiveSheet
Ccnt = .Columns(myCol).CurrentRegion.Rows.Count
For i = startRow To Ccnt
If .Cells(i, myCol).Value = "" Then
'上のセルの値を入力
.Cells(i, myCol).Value = .Cells(i - 1, myCol).Value
End If
Next i
End With
End Sub