• ベストアンサー

SUMPRODUCT関数 文字列を含んだ複数条件

いつもお世話になっております。    A    B     C    D 2  1    4     4     4 3  2     2     2     4 4  3     -    -     - B列が4以上かつC列が4以上かつD列が4以上のA列の合計を出したいのですが、 =SUMPRODUCT((B2:B4>=4)*(C2:C4>=4)*(D2:D4>=4)*(A2:A4)) というようにすると、「4」と出てしまい、どうもうまく計算されません。 「-」が4以上に反応してしまい、どうしたらよいでしょうか? どうぞ宜しくお願い致します。

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

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

ハイフンを0や空白にはできないのでしょうか。 ハイフンでないと駄目な場合、セル=数値の条件を追加しないと期待通りになりません。 例えば、=SUMPRODUCT((ISNUMBER(B2:B4>=4)*(B2:B4>=4)*~~)

katakko
質問者

お礼

ご回答、ありがとうございます。 mu2011さんのご回答を見て、とりあえず空白を入れて対処しました。 しかし、教えていただいた数式も確かめました。できました! とても助かりました。 ありがとうございました。

その他の回答 (2)

noname#79209
noname#79209
回答No.3

ハイフン部分を0に入力し直して データ部分の表示書式を「#,##0;-#,##0;"-"」とすれば 0のときは「-」が表示されるようになりますから、 「-」を入力せずに済むので、 ご質問のSUMPRODUCT関数はうまく働くハズです。

katakko
質問者

お礼

ご回答、ありがとうございます。 >データ部分の表示書式を「#,##0;-#,##0;"-"」とすれば なるほど。なるほど。 そういう考えもあるのですね! やはり「-」が入っていることから変えないとダメですね。 表示書式を「#,##0;-#,##0;"-"」はすっかり頭から抜けていました・・・。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

#1のご回答のアイデアと思いますが、詳しくは =SUMPRODUCT((B2:B4>=4)*ISNUMBER(B2:B4)*(C2:C4>=4)*ISNUMBER(C2:C4)*(D2:D4>=4)*ISNUMBER(D2:D4)*(A2:A4)) の3箇所ISNUMBER()が必要では。 結果 1 ーー それと、=SUMPRODUCT((ISNUMBER(B2:B4>=4)*(・・が正しいのかどうか不安ですが。 私が間違っていたらすみません。

katakko
質問者

お礼

ご回答ありがとうございます。 丁寧に教えていただきありがとうございます。 コピペしたら、結果「1」がでました~! >それと、=SUMPRODUCT((ISNUMBER(B2:B4>=4)*(・・ >が正しいのかどうか不安ですが。 については、「1」がでました! ありがとうございました。

関連するQ&A

  • SUMPRODUCT関数 文字列を含んだ複数条件

    いつもお世話になっております。   A列  B列   C列 1  100  100    1 2  200   50     2  3  -   100     3  A列が100以上かつB列が100以上のA列の合計を出したいのですが、 =SUMPRODUCT((A1:B3>=100)*(B1:B3>=100)*(C1:C3)) とやっていも、どうもうまく計算されません。 「-」が4以上に反応してしまうのですが、 どうしたらよいでしょうか? どうぞ宜しくお願い致します。  

  • SUMPRODUCT関数 『複数条件』に当てはまらない個数

    いつもお世話になっております。 【データ】    A    B     C   D 2   1     4      4 3   2     2     2 4   3    5     1 ・   ・   ・     ・    ・ ・ ・ というように1から5までの値が入っています。           A      B      C パターン1   A>=4    B>=4    C>=4 パターン2   A<2             C>=4 パターン3                  C<3 パターン4                 3=<C<4 『パターン1~4に当てはまらない』データのD列の合計を出したいのですが、 どのようにしたら出るのかわかりません。 ちなみに、上記のパターンは、AかつBかつCという条件になっています。 例えば、パターン1は、「Aが4以上かつBが4以上かつCが4以上」という意味です。 説明の仕方がわかりにくいと思いますが、どうぞ宜しくお願い致します。

  • SUMPRODUCT 複数条件設定で、計算式結果がおかしいです。

    下記のような表があったと仮定します。   A  B   C   D 1 月度 店舗 品目 売上金額 2 4   A   あ  22300 3 4   B   あ  18700 4 4   C   あ  14500 5 4   A   い  17950 6 5   B   あ  44000 7 5   C   い  35000 8 5   A   う  12000 9 5   B   い  13400 この表から、 店舗「A」、品目「あ」の売上合計は、22300になり、 数式「=SUMPRODUCT(($B$2:$B$9="A")*($C$2:$C$9="あ")*$D$2:$D$9)」で計算できます。 店舗「A,B」、品目「あ」の売上合計は、85000になり、 数式「=SUMPRODUCT(($B$2:$B$9={"A","B"})*($C$2:$C$9="あ")*$D$2:$D$9)」で計算できます。 店舗「A」、品目「あ,い」の売上合計は、40250になり、 数式「=SUMPRODUCT(($B$2:$B$9="A")*($C$2:$C$9={"あ","い"})*$D$2:$D$9)で計算できます。 しかし、 店舗「A,B」、品目「あ,い」の売上合計は、116350なのですが、 数式「=SUMPRODUCT(($B$2:$B$9={"A","B"})*($C$2:$C$9={"あ","い"})*$D$2:$D$9)」では、数値がおかしく(35700に)なります。 数式の使い方が間違っているのでしょうか? アドバイスをお願いします。

  • SUMPRODUCTとワイルドカード

    こんばんは。 <例>     A     B   C    (D) 1 北海道  500  100  =B1*C1 2 青森県  400  150  =B2*C2 3 新潟県  200  200  =B3*C3 4 東京都  200  100  =B4*C4 5 沖縄県  250  100  =B5*C5              合計=SUM(D1:D5) 作業列(D列)を作らず合計を求めるには、 =SUMPRODUCT(B1:B5,C1:C5) でできると思います。 ただ、ここに「県のみ合計」という条件が入った場合について質問します。 例のように作業列(D列)を作り、SUMIFですれば簡単にできるのですが、「作業列を作らず、SUMPRODUCTとワイルドカード(*県)を使って」数式を組み立てるにはどうすればいいのでしょうか? ステップ(D列)を踏まず、ひとつの数式だけで完結したいのです。 試行錯誤していますが、簡単そうなのになかなかうまくいきません…。 D1=COUNTIF(A1,"*県")で以下オートフィルコピーし、 =SUMPRODUCT(B1:B5,C1:C5,D1:D5) とすればできますが、結局作業列(D列)を作ってしまっていますし…。 あと…たとえば最初に示した数式なら、 =SUMPRODUCT((B1:B5)*(C1:C5)) という数式の組み方を回答でよく見かけますが、 =SUMPRODUCT(B1:B5,C1:C5) =SUMPRODUCT(B1:B5*C1:C5) としないのは、何か意味の違いがあるのでしょうか? お詳しい方よろしくお願いします。 Vista Excel2007です。

  • エクセル関数SUMPRODUCTについて

    エクセル2000です。 A列とB列の和にC列を乗じたものの合計は、 =SUMPRODUCT(A1:A10,$C$1:$C$10)+SUMPRODUCT(B1:B10,$C$1:$C$10) または =SUM(SUMPRODUCT(A1:A10,$C$1:$C$10),SUMPRODUCT(B1:B10,$C$1:$C$10)) のような長ったらしいものになるのでしょうか? =SUMPRODUCT((A1:B10)*C1:C10) は、表中に文字列が入る場合があるのでエラーになります。 ご教示いただければ幸いです。

  • エクセル SUMPRODUCT関数でこんな場合は?

    Excel2000です。 添付画像のような表があります。 A列、B列に数値、C列に文字列です。 A列の数値は単なる数値ではなく、計算式で求められています。 したがって表内A列の何も表示されていないセルは、計算の結果 ="" になったものです。 B列の数値は直接入力した単なる数値です。 この表で仮に、C列がAの場合のA列合計を求めるため、D6に =SUMPRODUCT((A1:A5)*(B1:B5)*(C1:C5="A")) としてみましたが、="" を乗じているためVALUEエラーになります。 =""を排除しようと、 =SUMPRODUCT((A1:A5<>"")*(A1:A5)*(B1:B5)*(C1:C5="A")) としてみましたが、やはりVALUEエラーになります。 こういう場合はどうしたらよいのでしょうか? ="" を =0 に変えるという回答以外でお願いいたします。

  • SUMPRODUCT関数について

    SUMPRODUCT関数について いつもお世話になっています。 以前こちらでSUMPRODUCT関数を教えていただき大変統計がしやすくなり、 仕事が効率化しました。ありがとうございます。 ところで、SUMPRODUCTだと思うのですが、計算式がうまく組み立てられないのでご質問させていただきます。 A列に部門名、B列に実施日が入力されているエクセルシートがあり、 部門ごとの実施件数を出したいのです。 SUMPRODUCT((A2:A100="○部門")*(CAUNTA(B2:B100))) としてみましたがうまくいきません。 たぶん *(CAUNTA(B2:B100)) の部分がいけないのだろうとは思うのですが、どう変化させればいいのでしょうか? 関数の選択が間違っているのかもしれない、とは思うのですが、適切なものが分かりません。 ご教授お願いします  

  • SUMPRODUCT関数の書式

    以前下記内容の回答をいただきました。   A  B   C   D   E  1 日付 コード 担当者 金額  合計 2 4/1  販促  佐藤  2000  2000 3 4/1  交通  鈴木  1000  3000 4 4/2  交際  佐藤  2000  5000 5 4/10  旅費 山田  1500   6500 6 5/2  販促 佐藤   1500   8000 7 5/16  交通 佐藤   1500   9500 以上の様な書式があります この書式から 4月の佐藤の販促代は幾らか? の合計の出し方ありますか? の回答をいただき =SUMPRODUCT((MUNTH($A$2:$A$7)=4)*($B#2:$B$7="販促”)*($C$2:$C$7="佐藤")*($D$2:$D$7) の計算式で出す事が出来ました。 そこで欲張って4月の佐藤の販促代と交際代の合計を出す事出来ますでしょうか? =SUMPRODUCT((MUNTH($A$2:$A$7)=4)*($B#2:$B$7="販促”)*($C$2:$C$7="佐藤")*($D$2:$D$7)、(MUNTH($A$2:$A$7)=4)*($B#2:$B$7="交際”)*($C$2:$C$7="佐藤")*($D$2:$D$7) とやりましたら、エラーにはならずに0になりました。 もう一度お知恵をお借りしたいです。 宜しくお願い致します

  • 列の積を求める関数

    エクセル関数で、sumproduct関数の意味を持ち、 「列を基準」に積の和が求められる関数をお教え頂けないでしょうか。 $A$1*A2+$B$2*B2+$C$3*C4........の計算を簡略化したいのが目的です。 宜しくお願い致します。

  • Excel関数:文字を含む複数条件の合計

    関数の達人の方、教えてください! A B C D E F ―――――――――――――――――――――――― 1 | 商品名    A社   B社  C社  A社  C社 2 | AA (1) 1 1 (2) 2 3 | BB 1 1 1 2 2 4 | ab AA (1) 1 1 (2) 2 5 | ab BB 1 1 1 2 2 6 | ab AA cd (1) 1 1 (2) 2 7 | ab BB cd 1 1 1 2 2 ―――――――――――――――――――――――― この表から「A社のAAを含む合計=合計9」を出したいです。つまり○数字になっているところの合計です。 自分なりに以下で試したところ、いづれも「0」となってしまいました。 =SUMPRODUCT((A2:A7="*AA*")*(B1:F1="A社"),(B2:D7)) =SUMPRODUCT(((A2:A7="*AA*")*(B1:F1="A社")),(B2:D7)) 列ごとで AA を含む合計を一旦計算することはできましたが、A社は複数列あるため、できれば一度に A社 の該当する合計を出せればと思っています。 =SUMIF(A2:A7,"*AA*",B2:B7) → 合計3 よろしくお願いいたします。

専門家に質問してみよう