• ベストアンサー

COUNTIFでの比較演算子について

こんにちは。 素朴な質問をさせてくださいm(__)m COUNTIFでの条件で比較演算子を使う時(30以上の時) (検索範囲,">=30")と記入しますが何故演算子なのに""でくくる必要があるのでしょう? それから30以上の部分を30の入ったセル番地で指定する場合 (検索範囲,">="&D10)・・・というような感じで&を利用する必要は どのような理由からなのでしょうか? 変な質問をしているようで申し訳ないのですがとても気になっております。どうか教えてくださいm(__)m

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

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

先日もSUMIFの質問に答えましたが、同じ方ではないようですね。 http://oshiete.homes.jp/qa3170831.html  ーー MSがそのように(文字列で引数を入れろと)作ったということに尽きるとおもいます。 IF(A1>B1,"",・・の例などありますから、 比較演算子は少数で限られていますから、割り出せないわけではないと思いますが。不統一になってますね。 しいて言えば、IFの比較部と引数の部分の違いが何かあるのかも知れない。 >索範囲,">="&D10)・・・というような感じで&を利用する必要は どのような理由からなのでしょうか? これは”>=”の部分が文字列である以上、文字列結合演算子&を使い、セル番地D10をくっつけています。 この段階ではまだD10の中身の数値は問題にされていない段階です。 D10には数値が入っているわけですが、引数のここを処理するとき 数字文字列に変換して">=10"と変換して引数として、関数ルーチンへ渡してくれるわけです。これはありがたいと思います。=INDIRECT() などの()内に指定するようなものなのだと思いますが。 こういう変換は(VBAなども含めるて)必ずこうなると言うわけでは ないように思い、警戒しながら使っています。 例="A"&1や="A"&"1"や="A"&A1は=A1と同じにはなりません。文字列と解釈されてしまう。Countifの第2引数も文字列だからこそうまくいくのかもしれない。 ウイザードではオペレータ(演算子)を別に入れさせているが 関数では、演算子は値とくっつけて指定する引数となっている。 IF関数で真偽を判定に使うところ以外はですが。 しかし演算子つきを引数として使う関数は余り多くないですね。COUNTIF、SUMIF、DSUM、DCOUNTぐらいか。 長い割りに、はっきりしない感じでしょうが、何か参考になれば。

wakudo
質問者

お礼

すみません。お二人のご説明があって初めて私の頭の中の疑問がすっきりしております。 この場をおかりしましてお二人へのお礼とさせてください。 本当にありがとうございます。 お二人のアドバイスあってこそです。 ですがポイントをつけなくてはなりません(>_<) ご回答いただいた順になってしまいますがどうぞ甲乙しがたい思いということをご理解ください。 本当にありがとうございました。

wakudo
質問者

補足

早速のご回答ありがとうございます。  *先日もSUMIFの質問に答えましたが、同じ方ではないようですね。 「似たような疑問を持つ方はやはりいらっしゃるのですね。初めてご質問させていただいております(*^_^*)」  *MSがそのように(文字列で引数を入れろと)作ったということに尽きるとおもいます。 「うーん。なるほどという気持ちで読ませていただきました。 普段IF関数をよく利用するのでなんとなく違和感を抱いておりました。」 でももう少し質問をしてもいいですかm(__)m 私の心の中では比較演算子は文字列というよりも数値だから比較しやすいのでは?なんて思い なぜMSは文字列で引数を入れろなんて考えるのかなぁーなんてまた疑問を持ってしまいました。 もしかすると私の思っている比較演算子への考えはおかしいのでしょうか。  *しかし演算子つきを引数として使う関数は余り多くないですね。COUNTIF、SUMIF、DSUM、DCOUNTぐらいか。 「その一言を伺い何故だかほっとしました。」  *長い割りに、はっきりしない感じでしょうが、何か参考になれば。 「いえ、そんなことないです。とっても参考になりました。ありがとうございます!!」

その他の回答 (1)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

>何故演算子なのに""でくくる必要があるのでしょう これは、EXCELの仕様がそうなっているからです >&を利用する必要は 「&」は文字を結合する機能が有ります D10 に 40 と入っていれば">=40"と同じ意味になります このように、比較する数値を可変にしたい場合に、使います (D10は数値なのになぜ&で結合できるのかと言うと、EXCELが自動で変換しているからです)

wakudo
質問者

お礼

早速のご回答ありがとうございます。  *「&」は文字を結合する機能が有ります  *D10 に 40 と入っていれば">=40"と同じ意味になります  *このように、比較する数値を可変にしたい場合に、使います 順をおって説明をいただき最後の「数値を可変にしたい場合に・・・」 という所で頭の中の何かがカチッときました!! ありがとうございますm(__)m

関連するQ&A