• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SUMPRODUCT関数のエラー)

SUMPRODUCT関数のエラー

このQ&Aのポイント
  • SUMPRODUCT関数を使用している際にエラーが発生しました。VALLE!というエラーが表示されています。
  • エラーの原因として、sheet2のC列が空白や数字で構成されていることが考えられます。
  • sheet2のC列が数字であっても、SUMPRODUCT関数を使用すると結果が0となってしまう問題が発生しています。

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

  • ベストアンサー
回答No.6

例えば、Sheet2 C 列のセルの書式が「文字列」となっているところに数を記入しても、SUMPRODUCT 関数はそれを数値とみなしてくれません。この状態を直すには、「文字列」以外の書式に設定した後、1 列全体を選択して「データ > 区切り位置 > 完了ボタン」と進むと、SUMPRODUCT の返す値が変化していると思います。 他にも、実は各列の行番号が勘違いで少しずれていた、ということはあり得ますね。あるいは、「α」などの文字列中に余計なスペースなどが混入していれば当然、想定どおりの計算結果にはなりません。 試しに、どこか適当な 1 行を選んで、同じ行番号の 3 シート 4 セルに手入力で「α」などを記入していってみましょう。SUMPRODUCT に変化はあるでしょうか? どこに原因があるのか探るため、お示しの数式が記入されているセルにカーソルを置いた状態で、数式タブの「数式の検証」の「検証」ボタンを何回か押してみることをお勧めします。そこで表示される配列を見ると、数えてほしい行については、同じ行番号の 3 シート 4 セルについて、全て TRUE となっているはずです。数式に問題が含まれていないとすればですが。しかし実際は「0」という計算結果になっているなら、4 セル中、少なくとも 1 つは FALSE と表示されているはずです。注意点は、行数が多すぎると表示するのに非常に時間がかかったり、小さなダイアログでは見づらいといった点が不便なので、10 行などの少なくした数式で試してみることです。 とりあえずお示しの 2 式に、数式の記法上の誤りは含まれていないようです。なお 2 本目の数式については、「*1」や「( )」を次のとおり書かなくて大丈夫です。 =sumproduct((sheet1!a1:a100="α")*(sheet2!a1:a100="β")*(sheet2!b1:b100="γ")* (sheet3!a1:a100="δ"),sheet2!c1:c100) 「=」が含まれている各論理式には「*」を付けますが、既に付いていますよね。だから「*1」は不要です。また、「sheet2!c1:c100」の部分には「=」がないため、「*」も「( )」も不要です。 >sheet2C1:C100が空白と数字でできているためかと思い、 理由はそんな感じです。見た目が空白っぽい、空文字列が記入されているセルは文字列なので、掛け算ができないために「#VALUE!」のエラーになりますね。本当の空白(未記入)のセルなら、「0」として扱われるため、エラーにはなりません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.5

#3です。本当に何度もすみません。 引数が足りない、というのは変ですね。当方は大丈夫なのですが・・・ それから、空白(スペース)が入っている時はこれで大丈夫だと思うのですが、逆に空白は空白でも何にも入っていない空白(デリートキーを押した時のような空白)のときにエラーになってしまうみたいです・・・。 お役に立てずにすみません。

全文を見る
すると、全ての回答が全文表示されます。
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.4

#3です。 すみません。括弧の数は合ってましたね。m(__)m

全文を見る
すると、全ての回答が全文表示されます。
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.3

#1です。補足を見ました。 =SUMPRODUCT((sheet1!A1:A100="α")*(sheet2A1:A100="β")*(sheet2!B1:B100="γ")* (sheet3!A1:A100="δ")*SUBSTITUTE((sheet2!C1:C100),"",0)) 最後の括弧閉じ ) が一つ足りないような気がしますが大丈夫でしょうか。 それから最後のほうの""は間に空白(スペース)が入ります。" "です。

全文を見る
すると、全ての回答が全文表示されます。
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>上記でVALLE!が出てしまいました。 提示された関数式には誤りが見られません。 各配列を評価できるように=SUMPRODUCT((配列1="文字列1")*1,(配列2="文字列2")*1,・・・・)のようにされると誤りが発見し易いと思います。 >どうしたらいいでしょうか? 結果が同じであれば判断すべきブロックを小さくすると点検しやすくなります。 途中経過を評価することも必要かと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.1

おっしゃるとおり、sheet2のC列に空白(スペース)が入っているのでエラーとなります。 substitute関数を使ってスペースを0に置き換えればよいと思います。 (sheet2!C1:C100) を、 SUBSTITUTE((sheet2!C1:C100)," ",0) のようにします。 なお、こうするとsheet2のC列が空白の場合は0が返り値となります。

goro_nyan
質問者

補足

ありがとうございます! 早速やってみました。 =SUMPRODUCT((sheet1!A1:A100="α")*(sheet2A1:A100="β")*(sheet2!B1:B100="γ")* (sheet3!A1:A100="δ")*SUBSTITUTE((sheet2!C1:C100),"",0)) としてみましたが、引数が足りないと出てしまいました。 また、 =SUMPRODUCT((sheet1!A1:A100="α")* (sheet2!A1:A100="β")*(sheet2!B1:B100="γ")* (sheet3!A1:A100="δ")*1,SUBSTITUTE((sheet2!C1:C100),"",0)) にすると、やはり0しかでませんでした。 どうしたらいいでしょうか? よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SUMPRODUCT関数で0(ゼロ)と

    はじめまして。arumikan091と申します。 (Excel初心者です(^^;) ExcelのSUMPRODUCT関数について質問があります。 A B (1) 2 0 (2) 2 4 (3) 2 (空白) (4) 2 3 (5) 2 0 (6) 3 4 (7) 3 (空白) というシートの中で、 "A列が2で、かつB列が0の個数を数える" ということをしようと思い =SUMPRODUCT((A1:A7=2)*(B1:B7=0)) と入力したのですが、 これだとB列の0(ゼロ)と一緒に""(空白)も 数えられてしまうようです。 (上記シートだと式の期待値は2なのですが、 実際値は3が返ってきます) このような場合、0(ゼロ)だけを数えられる ようにするにはどのようにすればいいか 教えていただけたら幸いです。 一応、自分でも少ない知識の中で色々トライしてみて、 =SUMPRODUCT((A1:A7=2)*(B1:B7=0))-SUMPRODUCT((A1:A7=2)*(B1:B7="")) のように式を入力するとちゃんと0(ゼロ)だけを 数えてくれるようなのですが、さらに簡単な 方法がありましたら教えてください。 Windows ME、Excel2000です。 ※1 B列単独で =COUNTIF(B1:B7,0)とするとちゃんと 0(ゼロ)だけを数えてくれます。 ※2 一応既存のQ/A集で同じ質問がないか探しましたが、 (「SUMPRODUCT 空白セル」のANDで) 同様、類似の質問が既にありましたら 申し訳ありません。 長文失礼しました(m_ _m

  • エクセル関数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) は、表中に文字列が入る場合があるのでエラーになります。 ご教示いただければ幸いです。

  • 《エクセル2000》SUMPRODUCT関数、この式のどこがいけないのか…

    こんにちは。 A列が1であり、B列とC列に共に数字が入っている(空白でない)ものをカウントしたいと思い、以下の関数を書きました。 =SUMPRODUCT((A1:A50=1)*(B1:B50<>"")*(C1:C50<>"")) ですがこの式ですと、「B列とC列が共に空白なもの」の個数が返って来てしまいます。 「<>」が怪しい気がするのですが、具体的に何がいけないのでしょうか? また、欲しい数字を出すようにするにはどうすればいいのでしょうか。 よろしくお願いします…

  • 《Excel2000》SUMPRODUCT関数での集計、空白行がある場合は?

    SUMPRODUCT関数を使い、複数の条件に合致する行のみの数値を足し上げたいと思っているのですが、集計したい数字が入っている列にところどころ空白があるせいで、結果がエラーになってしまいます。 仕様の事情で、空白のセルに0などを入れることはできないのですが、この場合はどうすればいいでしょう? =SUMPRODUCT(($A$2:$A$100=1)*($B$2:$B$100=1)*($C$2:$C$100)) 現在はこのような式です。C列に空白セルがあります。

  • SUMPRODUCT関数について

    A列に氏名、B列に性別(MかF)、D列に雇用形態(1~5の数字で入力)しています。 雇用形態は、1=正社員、2=契約社員・・・といった具合で、D列に数字を入れればC列に 雇用形態の名称が反映されるようにしています。 男性でかつ正社員の人数を求めたいのですが、どうしても結果が0になってしまいます。 計算式は =SUMPRODUCT((B5:B7="M")*(D5:D7="1")) で入力しています。 D列に数字を入れればC列に雇用形態の名称が反映されるようにしていることが問題でしょうか? どなたかご教示下さい。 よろしくお願いします。

  • SUMPRODUCTについて

    おはようございます。 A列に日付(H17.6.5)あるいは空白 B列に1あるいは2 C列に1~1000 A列に日付が入り、かつB列に1が入力されている 箇所のC列の数字の合計を出したいために、 SUMPRODUCTを使おうと思うのですが、 A列の日付の入った場合の数式の立て方が分かりません。 どうかよろしくお願いします。

  • SUMPRODUCT関数とROUND関数を一緒に

    幾度どなくお世話になっております。 4月からEXCEL中心の仕事になりましたが、まだまだ超初心者です。 今回は、ブック中の結合_OKシートのPセル列の文字がブック中の別シートのA列に記載している文字と一致したらその数分の結合_OKのAOセルに記載している金額を合計した値を別シートのB列に、整数値で表示させようとしています。 結合_OKのAOの金額のセルの数字は小数点3桁表示になっています。 ROUND関数を式に入れなければ、以下の式で、エラーは出力されず、別シートのB列に金額は出せましたが、この式にROUND関数を入れる為に色々とやってみましたが、エラーが表示されてしまっています。 =SUMPRODUCT((結合_OK!$P$3:$P$1000=$A2)*結合_OK!$AO$3:$AO$1000) 以下ではエラーが出ます =ROUNDDOWN(SUMPRODUCT((結合_OK!$P$3:$P$1000=$A2)*結合_OK!$AO$3:$AO$1000)) 因みに、結合_OKシートのPセル列には、空白のセルが混在している為、ブック中の別シートのA列に記載している文字は、手作業で作成しています。 別シートのA列、B列は以下のような記載です。  ID    合計金額 22NM5001 29470 22NM5002 11660 22NM5005 12045 22NM5007 2200 22NM5011 5500 22NM5012 16280 大変、お手数ですが、SUMPRODUCTとROUND関数を一緒に記載する方法を教えて頂けると大変助かります。 また、上記の式についても、SUMPRODUCT関数が最適なのか分からず使っています、こちらについてもご教示頂けると大変幸いです。 分かりずらい説明ではありますが、よろしくお願いいたします。

  • 【SUMPRODUCT】について

    下記リストと条件で価格を算出したいのですが、A列の「7」以外の数字まで反映された値がかえってきてしまいました。適切な関数を使用しているかも不明です。 アドバイスのほどお願いいたしますm( _ _)m --------------------------------------------------------------- セル A列 B列 C列 D列 E列 1 5 A リンゴ店 TEL \100 2 5 B ミカン店 FAX \200 3 7 C リンゴ店 TEL \100 4 7 A ミカン店 FAX \200 5 7 B リンゴ店 TEL \100 6 7 C ミカン店 FAX \200 --------------------------------------------------------------- <条件> A列 「7」 B列 「B」と「C」 C列 「ミカン」を含む D列 「FAX」以外 <作成した数式>(かえってきた値は上の条件とは相反したデータで、恐らくA列の「7」以外の数字も含んでいるようです・・) =SUMPRODUCT((A$2:A$10=7)*(B$2:B$10="B")*(B$2:B$10="C")*(E$1:E$10)) +SUMPRODUCT((A$2:A$10=7)*ISNUMBER(FIND("ミカン",C$1*C$10))*(E$1:E$10))+SUMPRODUCT((A$2:A$10=7)*ISERROR(FIND("FAX",D$1:D$10))*(E$1:E$10)) 以上、質問が長くなってしまい申し訳ありません。 ご教授のほどどうぞ宜しくお願いいたします。

  • エクセル 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関数を使いました。 シートが2つあります。 【データ】シート・・・アンケートのデータ A:No. B:データ 1   0 2   1 3   2 4   3 5  空欄が入っている ・ ・ 【集計】シート・・・B列の空欄、1~3の個数を集計する B列に数式 =SUMPRODUCT((データ!$A$4:$A$40000<>"")*(データ!B$4:B$40000=$A4)) を入れました。 A  B 0  2 ・・・・※ 1  1 2  1 3  1 空欄 2・・・・※ 0(ゼロ)と空欄を区別しないで同じと計算してしまいます。 データに、ゼロと空欄が混在している場合、SUMPRODUCTは使えないのでしょうか? この場合、どの数式を使うのがベストでしょうか? 分かりにくくて申し訳ありませんが、 宜しくお願い致します。

専門家に質問してみよう