出荷数の合計から最初の月(1月)の入庫数を引く
マイナスでなければ上記の差から翌月の入庫数を引く
それを続けてマイナスになった月が一番古い入庫月
(在庫が0になった後の月が一番古い入庫月と思ったのですが前月がない1月が対応できない気がしたので)
と考えた場合、計算式は分からないのでマクロでしたら
N3を選択した状態で実行するとN5(最後の行)まで計算します。毎月表示したい一番上のセル(画像だと3行目)を選択して実行します。
Sub Test()
Dim S As Range, c As Range, d As Range
Dim TotalS As Long
If Selection.Value <> "" Then
If MsgBox("既にデータがあります。続けますか?", vbYesNo + vbInformation) = vbNo Then
Exit Sub
End If
End If
Set S = Selection
For Each d In Range(Cells(3, "A"), Cells(Rows.Count, "A").End(xlUp))
TotalS = WorksheetFunction.SumIf(Range(Cells(2, "B"), Cells(2, S.Column - 1)), "出荷数", Range(Cells(d.Row, "B"), Cells(d.Row, S.Column - 1)))
Cells(d.Row, "P").Value = TotalS
For Each c In Range(Cells(d.Row, "B"), Cells(d.Row, S.Column - 1))
If Cells(2, c.Column).Value = "入庫数" Then
If TotalS - Cells(d.Row, c.Column).Value < 0 Then
Cells(d.Row, S.Column).Value = Cells(1, c.Column).Value
Exit For
Else
TotalS = TotalS - Cells(d.Row, c.Column).Value
End If
End If
Next
Next
End Sub
補足
kkkkkm様 度々すみません。 先程のものですと、N列4行目(みかん)の一番古い入庫月は、1月と表示されるのですが、正しくは、3月になります。 宜しくお願い致します。