[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『SUMIF関数の検索範囲を全列指定にするとおかしくなるんですが』(やまま)
Excel2000で、OSはWindows98またはWindows2000でも同様の結果でした。
A列 B列
4行目からデータがあるとして =SUMIF(A:A,1,B4:B7)←20 =SUM(B4:B7)←50 1 10.0 1 10.0 1 10.0 1 10.0 1 10.0
A列に1が立っている行のB列の合計を出したいのですが、上記のように、SUMIFで計算した場合とSUMで計算した場合の値が異なって出てきます.SUMIF関数の検索範囲は、全列指定は使えないのでしょうか?よろしくお願いいたします.
=SUMIF()では、特別な処理を企図する場合以外は、=SUMIF(A:A,1,B:B)と第1と第3引数の 参照範囲を揃えて使用するものですが。。。 (LOOKUP)
4行目から始まっているとして、 =SUMIF(A:A, 1,B4:B8)←99 (4,5,6行目ぬけ) =SUMIF(A1:A8,1,B4:B8)←99 (4,5,6行目ぬけ) =SUMIF(A2:A8,1,B4:B8)←132 (4,5行目ぬけ) =SUMIF(A3:A8,1,B4:B8)←154 (4行目ぬけ) =SUMIF(A4:A8,1,B4:B8)←165 1 11 1 22 1 33 1 44 1 55
これは確かに1番目と3番目の範囲が異なっていますが、矛盾した指定ではないはずです。
なんとなく納得がいかないんですけど、
エクセルの最新バージョンならこのようなことはないんでしょうか。
復元しました。書き込むときはそれ以前の書き込みを残してください。 (みやほりん)(-_∂)b
[みやほりん]さんいつもスミマセン。 (kazu)
>これは、SUMIF関数に限ってのことでしょうか? いえ、他の関数も同様のように思います。=LOOKUP()では、このようになりますね。(LOOKUP)
A B 1 10 100 2 20 200 3 30 300 4 400 5 500 6 7 20 200 =LOOKUP(A7,A1:A3,B1:B3) 8 300 =LOOKUP(A7,A1:A3,B2:B4)
「更新しました」とメッセージが出た時、しまったと思ったんですけど、後のまつり。
すいませんでした。
で、回答いただいた件ですが、そーなんですかー。
LOOKUP関数は使ったことが無かったので(VLOOKUPはよく使うのですが)、
気付きませんでした。
にしても、これはバグではないんでしょうか。
使い方やヘルプを見てもどこにも
対象範囲と検索範囲の行が対応(一致?)していなくてはならないとは書いてないんですけど。
素直に指定した通りの範囲で検索してくれればいいものを。
…あああ、今までどのくらいのミスがあったのやら…
考えたくない…
ヘルプより抜粋 『合計範囲(第三引数)に含まれるセルの中で、範囲(第一引数)内の検索条件を満たすセルに対応するものだけが計算の対象となります。』 ()内引用者 (みやほりん)(-_∂)b
老婆心ながら。 (やまま)さんが思っていることは,「条件に合った行を足して欲しい」ってことだと思います。 SUMIFなどは,条件に合った”行”ではなく,”範囲の上から何番目”を計上するものなのです。 ”4行目からデータがあるとして” の例題では,99になってしまった一番目の式では, A:A(つまりA1:A65536)の1番目は””, B4:B8の1番目は”11” A:A(つまりA1:A65536)の2番目は””, B4:B8の2番目は”22” A:A(つまりA1:A65536)の3番目は””, B4:B8の3番目は”33” A:A(つまりA1:A65536)の4番目は”1”, B4:B8の4番目は”44” A:A(つまりA1:A65536)の5番目は”1”, B4:B8の5番目は”55” A:A(つまりA1:A65536)の6番目は”1”, B4:B8の6番目はないな, ・ ・ ・ という計算をして,A列が”1”である(4番目から8番目)もののB列(4番目から8番目)を SUMしているのです。(やまま)さんが指定している部分について,”範囲の何番目” と,”行”との認識の違いなのではないでしょうか。
長々と失礼しました。(...)
すごく分かりやすい説明をありがとうございました。
本当に認識の違いなんですね。
これからは ”範囲の何番目”という意識で生きて行きます。
本当にありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.