- ベストアンサー
EXCELで複数条件(文字列)に合致した合計値を求めたい
他の質問を見たのですがぜんぜん判らない初心者のため、質問させていただきます。 下記のように、Aの列にいくつか文字列の種類があり、Cの列にもいくつか文字列の種類があります。(B,D,E列は空白とします) A B C D E 1あ オ 2か メ 3さ チ 4た パ 5な グ 6・ ・ 7・ ・ 8・ ・ ・・ ・ ・・ ・ 100・ ・ このような表で、 あるA列の文字列が「あ」であるC列の文字列が「グ」であるとき、その組み合わせを1として計算し、この組み合わせが1~100の行でいくつあるのかを出したいです。 A列とC列の文字列は同一行にあります。 この場合、どの関数を使えばよろしいのでしょうか。 sumproductとか、検索すると出てきたのですが今いち使い方が判りません。 どなたかご教授下さい。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1 で redowl さんが回答している方法の解説です。 SUMPRODUCT関数は範囲に対する数値の積の和を合計する関数です A B 1 2 3 2 4 5 3 6 7 とデータがあり SUMPRODUCT(A1:A3,B1:B3) とすると 2×3 +4×5 +6×7 =68 このような計算を行ないます。 (A1:A100="あ") の部分は、A1からA100のセルに "あ" と入力されていたら TRUE それ以外は FALSE を返します。 (C1:C100="グ") も同様な値が返ってきます。 TRUE/FALSE の論理値の演算させるとき TRUE = 1 FALSE= 0 として扱われます。 すなわち (A1:A100="あ")*(C1:C100="グ") は条件が成り立つとき 1、それ以外は 0 最後に 1 と 0 の合計が求められますから、条件に一致した数を数えることができます。 範囲に対応する積を求める関数ですが、論理値を扱うときは明示的に積を求める必要があるため この場合、演算子 "*" を ","(カンマ)に変えて配列として積を計算させると正しい結果を得られません。 =SUMPRODUCT((A1:A100="あ"),(C1:C100="グ")) ←これはNG
その他の回答 (1)
- redowl
- ベストアンサー率43% (2140/4926)
=SUMPRODUCT((A1:A100="あ")*(C1:C100="グ"))
お礼
ありがとうございます。 ご掲示の数式で正しく結果が得られました。
お礼
解説ありがとうございます。 大変判りやすい解説で理解できました。 今までなんとなく他のエクセルファイルのSUMPRODUCT関数をコピー&貼り付けでしのいできましたが、SUMPRODUCT関数はこれで覚えられそうです。