• ベストアンサー

エクセル関数で可能でしょうか?

エクセル関数で下記のような自動計算が可能か教えて下さい。 発注伝票のチェックのためにシート1のA列に連番で発注番号があり B列に日付・C列に金額・・・というふうなデータがあります。 このファイルのシート2の特定セルに発注番号を入力したら指定したセルにその発注番号の金額を表示したいのです。 現在INDEX(Sheet1!A:AA,(MATCH(Sheet2!D1,Sheet1!A:A,0)),3) の計算式を作ったのですが、同じ発注番号が複数ある場合は最初の物しか金額を引張って来ないため行き詰っています。 発注番号が複数あった場合、その該当番号すべての金額合計を求める関数式は可能でしょうか? よろしくお願いします。

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

  • ベストアンサー
  • don9don9
  • ベストアンサー率47% (299/624)
回答No.3

私もNo.2さんのように解釈しました。 =SUMIF(Sheet1!A1:A100,Sheet2!D1,Sheet1!C1:C100) でも可能かと思います。 (行数が100行の場合)

tarosa_00
質問者

お礼

試してみたらエラーになりませんでした! 思い描いてた通りです。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.2

>発注番号が複数あった場合、その該当番号すべての金額合計を求める >シート1のA列に連番で発注番号 シート1の A列に記載される 連番? は同一番号が複数個存在している。 と、解釈しましたが・・・ 今回は、この連番で同一の物を見つけ、その行の金額部分 の総和を計算したい。 ということを、数式で表すにはどうすればいいのか? という事を問いている。 のであれば、 INDEX関数ではなくて  SUMPRODUCT関数を使うことで、可能なのでは? シート2 のD1に 発注番号を入力 計算させる式は =SUMPRODUCT((Sheet1!A1:A100=Sheet2!D1)*(Sheet1!C1:C100)) 今回は、シート1のA列&C列の行数を 100 で設定。  行が増えるのであれば、下記のように数値を増やす。 =SUMPRODUCT((Sheet1!A1:A10000=Sheet2!D1)*(Sheet1!C1:C10000))

tarosa_00
質問者

お礼

今試して見たのですが何故かエラー表示になってしまいました。 式の意味をもう一度よく理解してチャレンジしてみます。 ありがとうございました!

すると、全ての回答が全文表示されます。
  • umi_kz
  • ベストアンサー率23% (6/26)
回答No.1

複数条件をエクセル関数だけで処理するのはかなり手間だと思いますよ。VBAマクロを使用することをお勧めします

tarosa_00
質問者

お礼

やはり無理ですか。 マクロはさっぱり解らないので関数で出来れば・・・と安易に考えてました。 マクロの勉強を始めてみます。 ありがとうございました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう