Excelで製品ごとの出荷数量から箱数を計算し、複数列のデータをまとめて配列するには、VBAマクロを利用するのが効率的です。特に、色で塗られたセルを1箱としてカウントする場合、条件付きの処理を組み合わせることで自動化できます。
前提条件の整理
今回のケースでは、以下の条件があります。
- 製品はA~Gまであり、出荷数量はD~J列に記載
- 黄色や青色など同じ色で塗られたセルは1箱としてカウント
- 最終的にM~O列のように配列して出力したい
マクロによる解決方法
1. VBAエディタを開き、新しいモジュールを作成
2. 色によるカウント処理を組み込む
Function CountByColor(rng As Range, clr As Long) As Long
Dim cell As Range
Dim cnt As Long
cnt = 0
For Each cell In rng
If cell.Interior.Color = clr Then cnt = cnt + 1
Next cell
CountByColor = cnt
End Function
3. 複数列の箱数をまとめてM~O列に出力
Sub CalculateBoxes()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row
Dim i As Long
For i = 2 To lastRow
ws.Cells(i, "M").Value = CountByColor(ws.Range("D" & i & ":J" & i), RGB(255, 255, 0)) '黄色の箱数
ws.Cells(i, "N").Value = CountByColor(ws.Range("D" & i & ":J" & i), RGB(0, 0, 255)) '青色の箱数
ws.Cells(i, "O").Value = ws.Cells(i, "M").Value + ws.Cells(i, "N").Value '合計箱数
Next i
End Sub
フォーマット変更の検討
色でカウントする方法は便利ですが、セルに値としてカテゴリを入れる形式に変更すると、CountIf関数やSUMPRODUCT関数で計算可能になります。こうすることでVBAなしでも集計が可能です。
まとめ
Excelマクロを使用すれば、複数列の出荷データを色ごとに箱数としてカウントし、M~O列に自動で配列することが可能です。さらにデータ形式を見直せば、VBAなしでも計算可能になり、柔軟性が向上します。


コメント