|
こんにちは。かみちゃん です。
>在庫ロットNo. 在庫数量
>07.02.10-1 150
>をどのように計算するのか教えていただけませんか?
>入庫数量は、530
>出庫数量の合計は、120+380
>でこれらを差し引くと、30になるのかなぁと思ったのですが・・・
上記については、30が正しいのであれば、以下のような感じのコードでできると思います。
Sub Macro1()
Dim vntData As Variant
Dim i As Long, j As Long
Dim swap As String
'入庫ロットNo.を配列データに取得
vntData = Range("A2", Cells(Rows.Count, 1).End(xlUp)).Value
'配列データ内を並べ替え
For i = 1 To UBound(vntData, 1)
For j = UBound(vntData, 1) To i Step -1
If vntData(i, 1) > vntData(j, 1) Then
swap = vntData(i, 1)
vntData(i, 1) = vntData(j, 1)
vntData(j, 1) = swap
End If
Next
Next
'配列データを出力して、在庫計算
With Range("E2").Resize(UBound(vntData, 1))
.Value = vntData
'在庫計算(入庫数量の合計−出庫数量の合計)
.Offset(, 1).Formula = "=SUMIF(A:A,E2,B:B)-SUMIF(C:C,E2,D:D)"
'計算結果を値にする
.Offset(, 1).Value = .Offset(, 1).Value
End With
End Sub
結局整理すると、並べ替えと、SUMIF数式だけでできてしまいました(^^;
|
|