• ベストアンサー

エクセル、出庫フラグと入庫フラグが混在する表で数量計算

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の在庫数はゼロとなります。 つまり同じ品番である場合、各フラグの値を相殺させて在庫高を 出したいのです。在庫数を出力する場所は問いません。 これを関数でどうにかなりませんでしょうか?お教えください。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

仮に日付がA列、出入庫フラグがB列、品番C列、数量D列、1行目から300行目までのデータとします。 =SUMPRODUCT((B1:B300=1)*(C1:C300="a001")*D1:D300)-SUMPRODUCT((B1:B300=2)*(C1:C300="a001")*D1:D300) で求められます。

utamaro-j
質問者

お礼

簡潔な回答助かります。ありがとう御座いました。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

    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

utamaro-j
質問者

お礼

わざわざ例を作っていただいてありがとう御座いました。参考に致します。

  • CMLT
  • ベストアンサー率40% (143/357)
回答No.3

EXCELのバージョンはいくつでしょう? 配列関数を多用すると非常に重くなるので、 EXCEL2007ならSUMIFSを使った方が良いと思います。

utamaro-j
質問者

お礼

バージョンは2007です。行数が一万を超えるものもあるので、sumifもあわせて勉強しておきます。ありがとう御座いました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 表範囲を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))

utamaro-j
質問者

お礼

ありがとう御座います。参考になりました

関連するQ&A