- ベストアンサー
エクセルのSUMIF関数での質問です。
会社コードで売上額を集計してます。 SUMIF(範囲,検索値,範囲)の検索値会社コードが 00E**という コードだとうまく計算されません。 VLOOKUPだとうまく引っ張ってくるのですが。。。 なにが原因でしょうか?
- みんなの回答 (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 と、きちんと数え分けることができます。
その他の回答 (2)
- deecyan
- ベストアンサー率38% (89/233)
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 になります
お礼
なるほど! 指数表記なんて知りませんでした。。 参考になりました。 ありがとうございます。
- imogasi
- ベストアンサー率27% (4737/17070)
私も下記の例でやってみましたが、追試に失敗しました。報告します。 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) おかしくならず、正しいようですね。
お礼
早速の回答ありがとうございます。 試してみました。 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だときちんと計算されるんですね。。。
お礼
ありがとうございます。 助かりました~ 参考のトラブル大変参考になりました。