- ベストアンサー
INDEX関数の値を合計する方法
- =INDEX関数を使用して複数の値を取得し、それらの値を合計する方法を知りたい。
- 質問者は、異なる検索値(Sheet3!B4、Sheet3!C4、Sheet3!D4など)を使用してINDEX関数を複数回使用し、それらの値を合計したいと考えている。
- 質問者は、合計を簡潔に計算する方法を知りたい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ヒットしたのと一つ上のC列を合計したいのですから =SUMPRODUCT(SUMIF(Sheet2!A5:A100,Sheet3!B4:Z4,Sheet2!C4:C99)) といった具合です。
その他の回答 (3)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
おそらくは こんな感じだと思うのですが =SUMPRODUCT((Sheet3!B4:D4=Sheet2!A5:A20)*(Sheet3!B4:D4<>"")*Sheet2!C4:C19) 完全一致が複数ある場合は計算が異なってしまいます。 言いたかったのは >=INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1)+=INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1) ではなく =INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1) +INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1) でしょう =IF(Sheet3!B4="","",INDEX(Sheet2!$C$5:$C$100, MATCH(Sheet3!B4,Sheet2!$A$5:$A$100,0)-1)) または =IF(Sheet3!B4="","",INDEX(Sheet2!$C5:$C100, MATCH(Sheet3!B4,Sheet2!$A5:$A100,0)-1)) として、右へオートフィル。 その範囲の合計を求めるのが、いちばん計算が速く、後継者や将来の自分にやさしい方法だと思います。
- web2525
- ベストアンサー率42% (1219/2850)
=SUMPRODUCT((Sheet2!A4:A99=Sheet3!B4:D4)*Sheet2!C5:C100) こんな感じかな? 元のデータ形式が不明なので計算式 =INDEX(Sheet2!C5:C100,MATCH(Sheet3!C4,Sheet2!A5:A100,0)-1) ↑の最後の-1が何を意味しているのか不明ですが
補足
ありがとうございます。 実は、その-1が凄い重要でして、そこが困ってるとこなんです。 =INDEX(Sheet2!C5:C100,MATCH(Sheet3!B4,Sheet2!A5:A100,0)-1) これは、シート3のB4の企業と同じ企業がシート2のA5からA100にあればということで、例えばシート2のA6で見つかれば、シート2のC6の一つ上の数字であるC5をシート1のD3に入れたいわけです。 シート2のC6の一つ上の数字というのがミソでして、そのために-1としています。 ですので、回答の頂いた式では、C6やC7に数字が入っていると、全てシート1に合計されてしまうんです。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばA1セルに答えを出すとしたらA1セルには =SUM(B1:XX1) などの式を入力しておきます。 B1セルから右横の列は作業列としてB1セルには次の式を入力して右横方向にドラッグコピーします。 =IFERROR(INDEX(Sheet2!$C5:$C100,MATCH(Sheet3!B4,Sheet2!$A5:$A100,0)-1),"")
補足
ありがとうございます してみましたが、これでは実現しませんでした。 もう少し、次の補足で詳しく書いてみます。
お礼
とてもシンプルで、目的が達成できました ありがとうございます