• ベストアンサー

エクセルのSUMIF関数での質問です。

会社コードで売上額を集計してます。 SUMIF(範囲,検索値,範囲)の検索値会社コードが 00E**という コードだとうまく計算されません。 VLOOKUPだとうまく引っ張ってくるのですが。。。 なにが原因でしょうか?

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

  • ベストアンサー
noname#52504
noname#52504
回答No.3

SUMIFやCOUNTIFは、数値として解釈できる文字列については、 勝手に数値として処理してしまうようです。 ↓も同様のトラブルですね。 ■countif関数の検索条件について http://oshiete1.goo.ne.jp/qa3378978.html SUMIFではなく、SUMPRODUCTあるいは配列数式を使えば、 文字列は文字列のままで計算されます。 00E123 1 00f124 2 00g234 3 00E124 4 00g234 5 00E123 6 00H213 7 =SUMIF(A1:A7,0,B1:B7) ⇒ 11 =SUMIF(A1:A7,"00E123",B1:B7) ⇒ 11 =SUMIF(A1:A7,"00E124",B1:B7) ⇒ 11 いずれも、1,4,6 がHITしてしまいますが、 SUMPRODUCTであれば、 =SUMPRODUCT((A1:A7="00E123")*B1:B7) ⇒ 7 =SUMPRODUCT((A1:A7="00E124")*B1:B7) ⇒ 4 と、きちんと数え分けることができます。

yoshiusa
質問者

お礼

ありがとうございます。 助かりました~ 参考のトラブル大変参考になりました。 

その他の回答 (2)

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.2

00E10の表記では EXCELは指数表記と思っているので 00E12 でも 00E13でも 中身は 0 なんです。 比較するほうも 00E12 は 0 なので 値が 0 になるものはすべてサマリー されちゃうんです データ 00E123   1 00E131   2 00E122   4 00E124   8 00H12   16 0      32 00E12   64 3g25   128 00f10   256 式  =SUMIF(A1:A100,"00E123",B1:B100) は 111 =SUMIF(A1:A100,"00E12",B1:B100) でも 111 になります

yoshiusa
質問者

お礼

なるほど! 指数表記なんて知りませんでした。。 参考になりました。 ありがとうございます。

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

私も下記の例でやってみましたが、追試に失敗しました。報告します。 Eはエクセルでは指数の表示なので疑いましたが、良く考えれば 関係ないでしょう。入力するとき00e12とか入力すると、指数表示 入力になるが。 ーー 例データ 00E123 1 00f124 2 00g234 3 00E123 4 00g234 5 00E123 6 00H213 7 ーー 8 =SUMIF(A1:A8,"00g234",B1:B8) 11 =SUMIF(A1:A8,"00E123",B1:B8) おかしくならず、正しいようですね。

yoshiusa
質問者

お礼

早速の回答ありがとうございます。 試してみました。 00E123 1 00f124 2 00g234 3 00E123 4 00g234 5 00E123 6 00H213 7 SUMIF(A1:A7,"00E123",B1:B7)=11 SUMIF(A1:A7,"00E124",B1:B7)=11 SUMIF(A1:A7,"00E12",B1:B7)=11 00E全部計算されてしまうようです。 でも00gだときちんと計算されるんですね。。。

関連するQ&A