[[20220925230710]] 『COUNTIFS関数に使われている ">=" の意味』(たける) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『COUNTIFS関数に使われている ">=" の意味』(たける)

エクセル初心者です。MOS EXCEL EXPERTの勉強中で、参考書にわからない点があったので質問させていただきます。
FOM出版のMOS対策テキストのP.167問7に
=COUNTIFS($D$4:$D$50,$K7,$F$4:$F$50,">="&$L$3,$G$4:$G$50,">="&$L$4)
という関数があったのですが、この>=についているダブルクオーテーションにはどのような意味があるのでしょうか?
また、">="と$L$3の間の&にはどのような意味があるのでしょうか?
ネットで調べてもわからなかったのでこちらに投稿させていただきます。
できるだけわかりやすくお願いします。

< 使用 Excel:Office365、使用 OS:Windows10 >


 ">="&$L$3は、
 ">=" & $L$3
 と書いても同じです。3つの要素に分けて考えてはどうか。

 ・">=" は文字列を示しています。
 ・& は文字列連結演算子です。
 ・L3の値が10であれば、
   ">=" という文字列と 10 を連結するという意味です。
   この結果、
   ">=10"
   という文字列になります。
 ・つまり、10以上という条件を作っているということです。

 (なお、">="という文字列と連結するとき、数値10は"10"という文字列に自動変換されたうえで、
  二つの文字列が連結されます。ちょっと細かい話ですが、気になるかもしれないので予めコメント。)
  
(γ) 2022/09/25(日) 23:59

返信ありがとうございます。
&が文字列連結演算子であるという点ですが、文字列とは「日本」などの単語の他に「150」などの数字や「=」などの記号も文字列に含まれるのでしょうか?
また、例えばIF関数の論理式IF(E3>=80,"○","×")のように>=にダブルクオーテーションを付けない式とは付ける場合とはどのような違いがあるのでしょうか。
(たける) 2022/09/26(月) 01:05


 ■COUNTIFS 関数のヘルプを確認してください。
 こう書かれています。
 | COUNTIFS (条件範囲 1, 検索条件 1, [条件範囲 2, 検索条件 2],…)
 | COUNTIFS 関数の書式には、次の引数があります。
 | ◾ 条件範囲 1 必ず指定します。 対応する条件による評価の対象となる最初の範囲を指定します。
 | ◾ 条件 1     必ず指定します。 計算の対象となるセルを定義する条件を数値、式、セル参照、または文字列で指定します。
 |              たとえば、条件は 32、">32"、B4、"Windows"、または "32" のようになります。

 「10以上」という条件を例にとると、
 COUNTIFS 関数の引数には
 ">=10" という条件を表す「文字列」を指定する必要があります。
 まず、ここから出発してください。
 これは、そういう決まりであることを受け入れて下さい。
 これは論理で導かれるものではなく、そのように決めたのです、Excelの開発者が。

 そして、そのために、">=10" という文字列がどのように作成されたかを、
 よく理解してください。(繰り返しません)

 ■追加質問に答えます。
 (1)
 | 文字列とは「日本」などの単語の他に「150」などの数字や「=」などの記号も文字列に含まれるのでしょうか? 
 ""の中に入れると、なんでも文字列になります。
 なお、
 ・150   は単なる数値、
 ・"150" は150という数字(文字列)
 ・ =    は、色々な機能で使われますね。
      ・数式の始めに書くもの(セル参照だったり、それ以降の数式の参照だったりします)、
      ・同一であるかの比較演算子 等々
 ・"="と書くと、それは単なる文字列です。

 (2)
 =IF(E3>=80,"○","×") について。

 E3>=80という数式は、
 E3セルにあるものと、数値の80を比較して、
 TRUE もしくは FALSE を返す、数式(論理式)です。

 IFの第一引数は、そうした「論理式」を指定することが求められているのです。
 これもそういう仕様なので、それに従ってください。理屈ではないのです。

 ■
 今回の質問に、型通りの回答するなら以上のようなことになります。
 正しいことを書いたつもりですが、そのことが直ちにあなたの頭をスッキリさせるか
 どうかはまた別の話かもしれない。
 理解というものはそのように一直線で進むものではないことも一方で事実です。
 文法的な理解も大切ですが、「数多く使って慣れていくこと」もお薦めします。

 余り文法的に突き詰めるよりも、ああ、そうかこういう時は、そういう使い方をするんだね、
 くらいで済ませて、機能として満たされているかどうかにより注意を向けたほうが、
 かえって理解が進む場面もありますよ。習うより慣れよ、ですね。

 英語の習得などもそうでしょう?(よく知らないけど、たぶん。)
 文法面から各部分を事細かく分析するより、
 こう言うものだと覚えてしまうほうが得策なステージもあると思います。特に会話なんかでは。
  
(γ) 2022/09/26(月) 07:01

丁寧な返信ありがとうございます。
返信を読んだ上で再度COUNTIFS関数について学び直し、理解できました。
この度はお時間いただきありがとうございました。
(たける) 2022/09/26(月) 11:55


γ氏と 近しいのですが
少し 離れますので、
敢えて 示します。
_

要点は、

>COUNTIFSの 条件部には、
 Boole演算式を 指定できない、   ※1
 文字渡し仕様だ。

という 点です。
_

一方の、

対比に 挙げられた、
IF構文ですが、

此方 真逆に、
Boole演算式しか、          ※1
概ねとして 指定できません。
_

確かに、

EXCELという 同一プラットフォーム上ですが、
其の 仕様に、
一貫性は、
完全には 見られないのです。
_

其れにしても、

誰もが よく、
引っかかる 疑問点の、
明確化質問ですので、

>とてもいい 質問だ、
と 感じましたよ。
_

因みに、

文字渡しが 必須とされる、
ものの 他には、

VBAながら  Evaluate構文を、
其の 一つとして、
挙げられるかと 思いますよ。
_

VBAでは、

オブジェクトタッチ回数が、
其の 速度に、
深く 根差しますが。
_

高名な、

エクセル解説者が 行われた、
検証結果、
及び 追検証においても、

千倍程度の 速度差をも、       ※2
示し得る程ですので、

飛躍的に オブジェクトタッチ数を、
削減し得る 同構文の、
重要性は、

著しい限りですね。
_

もう一点だけ、

〜IF、〜IFS、
等で 実施される、
検索照合ですが。
_

此方、

確か 改善されてない限り、
浸透は ほぼ、
していない、

≫知る人ぞ知る、
的な 内容ながら。
_

事前の、

検索や、置換時の、
検索設定に 戻り値が、
左右されますので。
_

必ずしも、

>どんな 環境、
 どんな タイミングでも、
 同一結果が 得られる、

そういった 信頼性は、
期待できない 点に、
ご留意くださいね。
_

※1、

Boole演算(式)、

https://e-words.jp/w/%E8%AB%96%E7%90%86%E6%BC%94%E7%AE%97.html#:~:text=%E8%AB%96%E7%90%86%E6%BC%94%E7%AE%97%20%E3%80%90logical%20operation%E3%80%91%20%E3%83%96%E3%83%BC%E3%83%AA%E3%82%A2%E3%83%B3,%E8%A1%8C%E3%82%8F%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E5%A4%9A%E3%81%84%E3%80%82

※2、

〉高速化・速度対策を一言で言えば、オブジェクトを操作する回数を減らすと言う事です。

との 内容への、
言及ページ紹介、

https://excel-ubara.com/excelvba4/EXCEL228.html
(Nouble) 2022/09/30(金) 03:04


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.