- ベストアンサー
エクセル関数について
エクセル関数について質問があります 例えば 「ある範囲内(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の数値が入ります 」 ですがもっとシンプルな方法がないかと思い質問させていただきました
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 >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))
その他の回答 (4)
- 沙羅 聖児(@sara_seiji)
- ベストアンサー率25% (25/98)
すみません、 SUMIF(B1:B7,1,A1:A7) で、出来ますね。
- 沙羅 聖児(@sara_seiji)
- ベストアンサー率25% (25/98)
特定の数値1がどこか1か所だけとの指定があるのなら、以下の関数で出来ます。 INDEX(A1:A7,MATCH(1,B1:B7,0)) 足していく関数が必要なのなら、上の関数では出来ません。 質問者様の書いたIF文を書くしかないでしょう。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばC列にデータを表示させるとしてC1セルには次の式を入力してC7セルまでオートフィルドラッグします。 =IF(D$1="","",IF(B1=1,A1,"")) なお、あなたがお示しの式はC列の数字を足し合わせたものが答えになっていますね。それでしたらC1セルに次の式を入力するだけで答えを得ることができます。 =SUMIF(B1:B7,1,A1:A7)
- kimic_3
- ベストアンサー率28% (20/69)
=SUMPRODUCT((B1:B7=E1)*1,C1:C7) B1~B7 にE1と同じ値があれば、C1~C7にある値を表示する。 詳しくは、SUMPRODUCTで検索してみてください。
お礼
Sumifがシンプルで使いやすいと感じました あとは配列数式自体知らなかったのでためになる回答でした ありがとうございました