- ベストアンサー
エクセル、出庫フラグと入庫フラグが混在する表で数量計算
20090501,1,a001,2 20090502,2,a001,1 20090503,2,a001,1 20090504,1,a002,5 20090505,1,a004,2 20090506,2,a003,1 20090507,2,a002,3 20090508,1,a003,2 20090509,2,a004,1 上記の様な表があるとします。 左から日付、出入庫フラグ、品番、数量、とします。 フラグは、"1"の場合は入庫、"2"の場合は出庫とします。 条件、a001の場合、フラグ1の合計から、フラグ2の合計を差し引く。 a001の在庫数はゼロとなります。 つまり同じ品番である場合、各フラグの値を相殺させて在庫高を 出したいのです。在庫数を出力する場所は問いません。 これを関数でどうにかなりませんでしょうか?お教えください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
仮に日付がA列、出入庫フラグがB列、品番C列、数量D列、1行目から300行目までのデータとします。 =SUMPRODUCT((B1:B300=1)*(C1:C300="a001")*D1:D300)-SUMPRODUCT((B1:B300=2)*(C1:C300="a001")*D1:D300) で求められます。
その他の回答 (3)
A B C D E F G H I 1 DATE FLAG PNUM QNTY PNUM 1 2 INV 2 20090501 1 a001 2 a001 2 2 0 3 20090502 2 a001 1 a002 5 3 2 4 20090503 2 a001 1 a003 2 1 1 5 20090504 1 a002 5 a004 2 1 1 6 20090505 1 a004 2 7 20090506 2 a003 1 8 20090507 2 a002 3 9 20090508 1 a003 2 10 20090509 2 a004 1 11 G2: =SUMPRODUCT(($C$2:$C$100=$F2)*($B$2:$B$100=G$1),$D$2:$D$100) I2: =G2-H2
お礼
わざわざ例を作っていただいてありがとう御座いました。参考に致します。
- CMLT
- ベストアンサー率40% (143/357)
EXCELのバージョンはいくつでしょう? 配列関数を多用すると非常に重くなるので、 EXCEL2007ならSUMIFSを使った方が良いと思います。
お礼
バージョンは2007です。行数が一万を超えるものもあるので、sumifもあわせて勉強しておきます。ありがとう御座いました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 表範囲をA1:D10、F1以下に品番を事前設定、G1に次の関数を設定し、下方向にコピーで如何でしょうか。 =SUMPRODUCT(($B$1:$B$100=1)*($C$1:$C$100=F1)*($D$1:$D$100))-SUMPRODUCT(($B$1:$B$100=2)*($C$1:$C$100=F1)*($D$1:$D$100))
お礼
ありがとう御座います。参考になりました
お礼
簡潔な回答助かります。ありがとう御座いました。