• ベストアンサー

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とか、検索すると出てきたのですが今いち使い方が判りません。 どなたかご教授下さい。 よろしくお願いします。

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

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.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

tashkent
質問者

お礼

解説ありがとうございます。 大変判りやすい解説で理解できました。 今までなんとなく他のエクセルファイルのSUMPRODUCT関数をコピー&貼り付けでしのいできましたが、SUMPRODUCT関数はこれで覚えられそうです。

その他の回答 (1)

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

=SUMPRODUCT((A1:A100="あ")*(C1:C100="グ"))

tashkent
質問者

お礼

ありがとうございます。 ご掲示の数式で正しく結果が得られました。

関連するQ&A