• ベストアンサー

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

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

  • activereportの計算式

    VB6.0でactivereportを使っています。 日付    品名  品番 入庫 出庫 在庫数  2006/08/01 りんご 0001  3     3   2006/08/01 りんご 0001     1  2   2006/08/01 りんご 0002  8   2  6 というように今在庫テーブルには品番ごとの在庫数が入っています。 それをactivereportへ出力するときに 品番を無視して在庫数を計算したいのですが どうすればいいのでしょうか? 日付    品名  品番 入庫 出庫 在庫数  2006/08/01 りんご 0001  3     3   2006/08/01 りんご 0001     1  2   2006/08/01 りんご 0002  8   2  8 というようにしたいのです。 前日の実在個数+入庫-出庫という方法を考えています どこをどのようにしたらいいのかがわかりません。 教えてください。 よろしくお願いします。

  • 更新クエリが実行できず、困っています。

    以前こちらで、更新クエリについて教えて頂きましたが、 実行できず、困っています。 在庫クエリで計算した在庫数を、部品マスタの現在庫に代入する 更新クエリを実行すると、 「更新可能なクエリでなければなりません」とエラー表示されます。 UPDATE T_部品マスタ AS A INNER JOIN Q_在庫 AS B ON A.部品品番=B.部品品番 SET A.現在庫 = B.在庫数; と作成しました。 以下に、作成したデータベースを書き出してみます。 どこが悪いのか、ご指摘頂ければ幸いです。 よろしくお願いします。 部品分類テーブル 部品分類ID(主キー) 部品分類名 保管場所テーブル 保管場所ID(主キー) 保管場所 部品マスタテーブル(T_部品マスタ) 部品品番(主キー) 部品分類ID 保管場所ID 部品名 現在庫 入出庫テーブル 入出庫ID(オートナンバー) 日付 部品品番 入庫数量 出庫数量 入出庫テーブルを元にクエリを作る 入庫クエリ 部品品番 入庫数量の合計 出庫クエリ 部品品番 出庫数量の合計 在庫クエリ(Q_在庫) 部品品番(部品テーブル) 部品名(部品テーブル) 入庫数量の合計(入庫クエリ) 出庫数量の合計(出庫クエリ) 在庫数(nz([入庫数量の合計])-nz([出庫数量の合計])

  • 在庫数の取得

    T_zaikoというテーブルに 日付    品名  品番 入庫 出庫 在庫数  2006/08/01 りんご 0001  3     3   2006/08/01 りんご 0001     1  2   2006/08/01 りんご 0002  8   2  6 2006/08/02 りんご 0001  棚卸    6 2006/08/03 りんご 0002  棚卸    8 があります。 これを品番は関係なしで在庫数を求めたいのですが どうすればいいのでしょうか? 日付    品名   入庫 出庫 在庫数  2006/08/01 りんご   3     3   2006/08/01 りんご      1  2   2006/08/01 りんご   8   2  8 2006/08/02 りんご   棚卸    12 2006/08/03 りんご   棚卸    14 というようにしたいのです。 上から順に入庫のときは足して出庫のときは引いていくと棚卸のときがおかしくなります。 どうすればいいのでしょうか? activereportへ出力したいのです。 よろしくお願いします。

  • Accessで倉庫管理

    お世話になります。 現在Accessで在庫管理作成中です。 テーブル: 入庫:品番 品名 グループ 数量 使用者 日付 出庫:品番 品名 グループ 数量 使用者 使用状態 日付 グループ:1 消耗品        2 道具       3 機械 クエリ 消耗品在庫:入庫(消耗品)-出庫(消耗品) フォーム: 入庫フォーム、在庫フォームと出庫フォームを作成しました。 在庫フォームはクエリの元で作成しました。 以上のように作りました。 やりたいことは出庫フォームを入力する時、消耗品なら、数量を入力して、一旦在庫を確認して出したい数は在庫があれば、入力できます。そうではない場合はエラーでます。 言葉がうまく説明できないですのでイメージとしては Select Case グループID Case 1 If 数量<「在庫フォーム」の数量 Then  そのまま入力出来ます。在庫が減って行きます。 Else エアー Message box”在庫は足りません” こんな感じでコードに書き換えられますか?コードが弱いですので助けて下さい。 よろしくお願いします。  

  • 入出庫プログラムで入庫単価と出庫単価を同じにしたい

    入出庫プログラムで入庫単価と出庫単価を同じにしたいプログラムを制作して欲しいと言われているのですが、一つ疑問なのですが、これまで棚卸資産評価方法にはいろいろな方法がある事が、ここでの質問とご回答でかなり理解できてきましたが、今回依頼されている入出庫プログラムにおいて、同じ品番の同じ部品の入庫伝票の単価と出庫伝票の単価を製品マスターを作った上で、同じ単価で良いというのですが、これっておかしいのではないかと思うのです。 たとえ同じ仕入先から同じ部品を仕入れ、入庫したとしても仕入単価は変わってくるのですが、それを出庫時に同じ単価で出庫する事自体、在庫資産評価がおかしくなると思うのですが如何でしょうか?

  • エクセルでの在庫管理表について。

        A     B    C    D    E 1列 品名  現在庫 入庫 出庫 総在庫 2列 AAA001  100  100  50  150 3列 AAA002  150  120  20  250 ・ ・ ・ このような在庫管理表を会社で作りました。 上司から「最初はこれでもいいんだけど、入庫と出庫はいつも変動するから、次回入力時にもいちいち現在庫も書き換えるのは面倒。入庫と出庫だけ書き換えるだけで合計が出るようにしてくれ!」と言われたのですが、つまり(総在庫+入庫-出庫=総在庫)にしたいそうです。エクセルでは出来ませんよね? 現在庫が無いものだったら、(入庫+出庫=総在庫)で出来るんですが。 どうやったらうまく作れるのかわからずこちらで質問させて頂きました。 説明が下手ですみません。補足要求があれば、補足しますので回答お待ちしております。

  • 全ての列をグループ化したくない時

    いつもお世話になります。 また少し行き詰まったのでご教示よろしくお願いします。 VB.NET2003 + Accese2000 での開発環境です。 いま簡単な倉庫の入出庫管理表を作ろうとしています。 フィールドは (1)入出庫日 (2)入出庫区分(入庫か出庫かの区別) (3)倉庫棚番 (4)品番 (5)ロット (6)数量    ・    ・    ・    ・ こんな感じである時点での集計表を作ろうとしました。 入出庫区分は入庫時には[1]、出庫時には[-1]を入れる様にし、在庫量を出す時には(入庫数量 数量×[1]、出庫数量 数量×[-1])の合計(Sum)で計算しようと考えました。 品番やロット別等でそれぞれ集計しようとしましたが、表示する全ての列でグループ化をする必要があるようで、そうすると入庫の合計、出庫の合計が別々に出てきてしまって、目的とする現在の数量が見えません。 入出庫合計(現在の数量)を品番やロット別に出す場合、どういう風にグループ化すればいいのでしょうか? また単純にSumを使って合計すると言うことは普通しないのでしょうか? 何かヒントをお願いいたします。

  • ご教授お願い致します。

    ご教授お願い致します。 MicrosoftSQL2008で テーブルに在庫データと受払データの2種類があります。 在庫データは受払データを1行にまとめた情報で 年月で管理しています。 また、受払データはその詳細で年月日で管理しています。 質問は、この二つのテーブルをビューで1つに結合したいのですが 結合に在庫データの年月と受払データの年月日だと特定の日付のみしか 結合されません。 よって、方法を教えて頂ければ幸いです。 尚、例を下に記述します。 ■在庫データ 年月    品番 入庫数 出庫数 2010/06/01 A   3    1 2010/07/01 A 0 1 ■受払データ 伝票No. 日付  品番 入出庫区分 数量 1 2010/06/02 A 入庫    1 2 2010/06/03 A 入庫    2 3 2010/06/04 A 出庫    1 4 2010/07/02 A 出庫    1    結合は在庫データの2010/06/01だと受払データの  伝票No.が1から3まで  2010/07/01だと伝票No.4です。

  • エクセル 在庫管理(在庫数から入庫月を求める)

    エクセルでの在庫管理をご教示ください。 これまで手書きで計算していた入庫月をエクセルで行いたいと考えております。 在庫数からその在庫の一番古い入庫月を求める計算式をお教えください。 例: A列 商品名 2020/1月の B列 出荷数量 C列 入庫数量 D列 在庫数量 2020/2月の E列 出荷数量 F列 入庫数量 G列 在庫数量 2020/3月の H列 出荷数量 I列 入庫数量 J列 在庫数量 *K列に、3月の在庫数量(J列)の、一番古い在庫の入荷月を求める計算式を入力したいです。 宜しくお願い致します。

  • エクセルで在庫管理表の作り方を教えてください。

        A     B     C 1列.入庫数 出庫数 総枚数 2列. 10    5    100 ↑ 「(入庫数-出庫数)+総枚数」で出た枚数をC2に上書きさせたいのですが、出来ません。 「(A2-B2)+C2」じゃ出来ないのでしょうか? 例えば「C2が90の時は総枚数が95になる」という風な在庫管理表を作りたいのです。 本当に初心者ですみませんが、回答お待ちしております。よろしくお願いします。

専門家に質問してみよう