• ベストアンサー

エクセル関数について

エクセル関数について質問があります 例えば 「ある範囲内(b1:b7)に特定の数値(1)があれば、その特定の数値のセルの横の数値を返す」 ような数式は作れますか? 一応私なりに試しました 「 if(b1=1,a1,0)+if(b2=2,a2,0)+if(b3=1,a3,0)+...+if(b7=1,a7,0) この場合、特定の数値1がb5にあれば数式を入れたセルにa5の数値が入ります 」 ですがもっとシンプルな方法がないかと思い質問させていただきました

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

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

一例です。 >if(b1=1,a1,0)+if(b2=2,a2,0)+if(b3=1,a3,0)+...+if(b7=1,a7,0)  ⇒=SUM(IF(B1:B7=1,A1:A7))として入力完了時にshift+ctrl+enterキーを同時押下   (配列数式といいます、詳しくはweb検索してみて下さい)   又は、SUMPRODUCT関数になります。   =SUMPRODUCT((B1:B7=1)*(A1:A7))

usa0998
質問者

お礼

Sumifがシンプルで使いやすいと感じました あとは配列数式自体知らなかったのでためになる回答でした ありがとうございました

その他の回答 (4)

回答No.5

すみません、 SUMIF(B1:B7,1,A1:A7) で、出来ますね。

回答No.4

特定の数値1がどこか1か所だけとの指定があるのなら、以下の関数で出来ます。 INDEX(A1:A7,MATCH(1,B1:B7,0)) 足していく関数が必要なのなら、上の関数では出来ません。 質問者様の書いたIF文を書くしかないでしょう。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばC列にデータを表示させるとしてC1セルには次の式を入力してC7セルまでオートフィルドラッグします。 =IF(D$1="","",IF(B1=1,A1,"")) なお、あなたがお示しの式はC列の数字を足し合わせたものが答えになっていますね。それでしたらC1セルに次の式を入力するだけで答えを得ることができます。 =SUMIF(B1:B7,1,A1:A7)

  • kimic_3
  • ベストアンサー率28% (20/69)
回答No.1

=SUMPRODUCT((B1:B7=E1)*1,C1:C7) B1~B7 にE1と同じ値があれば、C1~C7にある値を表示する。 詳しくは、SUMPRODUCTで検索してみてください。

関連するQ&A