Excel VBA | データ補完(Offset × 条件分岐 × IfEmpty)の黄金パターン集

Excel VBA VBA
スポンサーリンク

ここでは Offset × 条件分岐 × IfEmpty を組み合わせて「空欄セルを検出し、補完値を隣列や下段に出力する」黄金テンプレをまとめます。
入力漏れや欠損データを自動補完する処理は、売上表・勤怠表・在庫表などの実務で頻出します。


基本パターン 10選

1. 空欄を「前行の値」で補完

Dim r As Range
For Each r In Range("A3:A20")
    If IsEmpty(r.Value) Then
        r.Value = r.Offset(-1, 0).Value
    End If
Next r
VB

👉 空欄を前行の値で補完。


2. 空欄を「次行の値」で補完

Dim r As Range
For Each r In Range("B2:B19")
    If IsEmpty(r.Value) Then
        r.Value = r.Offset(1, 0).Value
    End If
Next r
VB

👉 空欄を次行の値で補完。


3. 空欄を「固定値」で補完

Dim r As Range
For Each r In Range("C2:C20")
    If IsEmpty(r.Value) Then
        r.Value = "未入力"
    End If
Next r
VB

👉 空欄を「未入力」で補完。


4. 空欄を「平均値」で補完

Dim r As Range
For Each r In Range("D2:D20")
    If IsEmpty(r.Value) Then
        r.Value = WorksheetFunction.Average(Range("D2:D20"))
    End If
Next r
VB

👉 空欄を列全体の平均値で補完。


5. 空欄を「中央値」で補完

Dim r As Range
For Each r In Range("E2:E20")
    If IsEmpty(r.Value) Then
        r.Value = WorksheetFunction.Median(Range("E2:E20"))
    End If
Next r
VB

👉 空欄を列全体の中央値で補完。


6. 空欄を「0」で補完

Dim r As Range
For Each r In Range("F2:F20")
    If IsEmpty(r.Value) Then
        r.Value = 0
    End If
Next r
VB

👉 空欄をゼロで補完。


7. 空欄を「右隣の値」で補完

Dim r As Range
For Each r In Range("G2:G20")
    If IsEmpty(r.Value) Then
        r.Value = r.Offset(0, 1).Value
    End If
Next r
VB

👉 空欄を右隣の値で補完。


8. 空欄を「左隣の値」で補完

Dim r As Range
For Each r In Range("H2:H20")
    If IsEmpty(r.Value) Then
        r.Value = r.Offset(0, -1).Value
    End If
Next r
VB

👉 空欄を左隣の値で補完。


9. 空欄を「上段の平均」で補完

Dim r As Range
For Each r In Range("I3:I20")
    If IsEmpty(r.Value) Then
        r.Value = WorksheetFunction.Average(Range("I2:I" & r.Row - 1))
    End If
Next r
VB

👉 空欄を上段の平均値で補完。


10. 空欄を「条件付き補完」

Dim r As Range
For Each r In Range("J2:J20")
    If IsEmpty(r.Value) Then
        If r.Offset(0, -1).Value = "VIP" Then
            r.Value = 1000
        Else
            r.Value = 500
        End If
    End If
Next r
VB

👉 左隣の条件に応じて補完値を変える。


✅ まとめ

  • Offset → 前行・次行・隣列の値を参照して補完
  • 条件分岐 → 空欄判定+条件付き補完
  • IfEmpty → 欠損データを自動補完(固定値・平均・中央値・ゼロなど)
  • 黄金パターン → 前行補完・次行補完・隣列補完・条件付き補完で柔軟に対応

💡 この「データ補完 × Offset × 条件分岐 × IfEmpty」パターン集を使えば、売上表・勤怠表・在庫表などの 欠損データ補完 を自動化できます。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました