わえなび ワード&エクセル問題集

当サイトはWordとExcelの実力を鍛える最高水準の特訓問題集です。リンクを張るのは自由です。みんなで勉強しましょう!

【Excel関数】COUNTIFやSUMIFの検索条件で、不等号をダブルクォーテーション(二重引用符)で囲む理由

COUNTIF関数やSUMIF関数のような「~IF」という関数は、引数に検索条件を指定する必要があり、何らかの条件で抽出したデータまたは行について集計するものです。検索条件の指定について初学者が疑問に思うことと言えば、「なぜ不等号をダブルクォーテーションで囲む必要があるのか」ということだと思います。特にIF関数を学習した直後の場合、違和感があるかもしれません。

~より大きい、~より小さいという条件を指定するときの不等号は比較演算子と呼ばれていますが、検索条件で使われる不等号は比較演算子ではなく、「比較演算子のような記号」であり単なる文字列とされています。演算子ではなく単なる文字列なので、ダブルクォーテーションで囲む必要があるのです。

そこで、今回は、検索条件で不等号を用いる方法と注意点について出題します。

 

 

目次

1.検索条件は探したいデータを指定する(復習)

不等号をダブルクォーテーションで囲む理由を知るには、まず、ダブルクォーテーションで囲む場合と囲まない場合の違いを理解する必要があります。

(1)数値の場合

問題

セル範囲B1:B6のうち、「200」のセルの個数を数えるにはどのような方法があるか。

f:id:waenavi:20200612115216j:plain

 

解説

COUNTIFやSUMIFなどの検索条件には、探したい数値または文字列のデータを指定します。「200」を数えるときの検索条件は「200」です。

  • =COUNTIF(B1:B6,200)

f:id:waenavi:20200612120141j:plain

 

検索条件はセル参照を用いてもかまいません。

  • =COUNTIF(B1:B6,E1)

f:id:waenavi:20200612120546j:plain

 

なお、「"200"」としても数値の200が抽出されますので、数値の場合はダブルクォーテーションで囲んでも囲まなくても同じです(参考:【Excel】COUNTIFやSUMIFの「検索条件」総まとめ、ワイルドカード、比較演算子との違い)。

  • =COUNTIF(B1:B6,"200")

f:id:waenavi:20200612120609j:plain

 

(2)文字列の場合

問題

セル範囲A1:A6のうち「カレーライス」の行についてB列の数値の合計を求めるにはどのような方法があるか。また、「カレー」から始まる行についてB列の数値の合計を求めるにはどのような方法があるか。

f:id:waenavi:20200612120653j:plain

 

解説

「カレーライス」を抽出するときの検索条件は「"カレーライス"」です。文字列は必ずダブルクォーテーションで囲みます。

  • =SUMIF(A1:A6,"カレーライス",B1:B6)
  • =SUMIF(A1:A6,D2,B1:B6)

f:id:waenavi:20200612120722j:plain

f:id:waenavi:20200612120750j:plain

 

検索条件は数式で作ってもかまいません。例えば、「カレーライス」を、カレーとライスに連結する式にしてもかまいません。このとき、文字列連結演算子の「&」は演算子なのでダブルクォーテーションで囲んではいけません。

  • =SUMIF(A1:A6,"カレー"&"ライス",B1:B6)

f:id:waenavi:20200612120844j:plain

 

さらに検索条件にセル参照を用いてもかまいません。このとき、セル参照の部分をダブルクォーテーションで囲んではいけません。

  • =SUMIF(A1:A6,E1&"ライス",B1:B6)

f:id:waenavi:20200612120923j:plain

 

もし、E1にダブルクォーテーションを付けると「E1ライス」という文字列を探すことになってしまいます。

  • =SUMIF(A1:A6,"E1"&"ライス",B1:B6)

f:id:waenavi:20200612121003j:plain

 

検索条件が文字列の場合に限り、ワイルドカードを用いることができます。ワイルドカードは文字列扱いなのでアスタリスクにはダブルクォーテーションが必要です(ダブルクォーテーションの中に入れる)。

  • =SUMIF(A1:A6,"カレー*",B1:B6)

f:id:waenavi:20200612121056j:plain

 

セル参照を用いる場合、セル参照と文字列連結演算子をダブルクォーテーションで囲んではいけないので、「E1&"*"」となります。

  • =SUMIF(A1:A6,E1&"*",B1:B6)

f:id:waenavi:20200612121119j:plain

 

2.比較演算子のような記号

(1)文字列の先頭につける

問題

セル範囲B1:B6のうち、「200より大きい」セルの個数を数えるにはどのような方法があるか。

f:id:waenavi:20200612121156j:plain

 

解説

前述のとおり、COUNTIF関数の検索条件は探したい数値または文字列のデータで指定します。「200より大きい」という条件を単独の数値で指定することができないので、文字列で指定することになります。

f:id:waenavi:20200612121456j:plain

 

そして、検索条件を文字列で指定する場合に限り、先頭に「比較演算子のような記号」を付けることができます(後述)。例えば、200より大きいセルを数えるときの検索条件は「">200"」です。文字列なのでダブルクォーテーションで囲みます。

  • =COUNTIF(B1:B6,">200")

f:id:waenavi:20200612121537j:plain

 

200は数値なので「">"&200」としてもかまいませんが、文字と数値を文字列連結演算子である&で連結すると、全体として文字列となるので「">200"」と記述しているのとまったく同じです。

  • =COUNTIF(B1:B6,">"&200)

f:id:waenavi:20200612121615j:plain

 

セルE1を参照してもかまいませんが、セル参照と文字列連結演算子をダブルクォーテーションで囲んではいけないので、「">"&E1」となります。

  • =COUNTIF(B1:B6,">"&E1)

f:id:waenavi:20200612121744j:plain

 

(2)特に認められているだけ

Excel関数には、探したい数値やデータ(検索値、検索文字列など)を指定する関数が多くありますが、比較演算子のような記号が使えるのは一部の関数だけです。特別に認められた機能であることに注意します。この点について詳しくはこちらの記事をご覧ください。

 

3.比較演算子と「比較演算子のような記号」の違い

(1)比較演算子

IF関数の場合、~より大きいという条件を入力するとき、「B1>200」などと入力します。

f:id:waenavi:20200612122157j:plain

 

これは左辺と右辺の間に比較演算子を挟むことによって、TRUEまたはFALSEの値を返すためです。「=B1>200」と入力するとFALSEになります。足し算の「=B1+200」や引き算の「=B1-200」のように、演算子の前後にはデータが必要です。

f:id:waenavi:20200612122233j:plain

 

このときの不等号は足し算や引き算と同じように「演算子」なので、ダブルクォーテーションをつけてはいけません。

f:id:waenavi:20200612122257j:plain

 

(2)比較演算子のような記号

これに対して、COUNTIF関数やSUMIF関数の検索条件は、数値または文字列で指定することになっています。

そして、文字列で指定する場合に、その先頭に「比較演算子のような記号」を付けることが認められています。文字列の先頭に不等号を付けても文字列に変わりはなく、その左右にデータが無いのでTRUEまたはFALSEの値が返ってくるわけではありません。

f:id:waenavi:20200612122323j:plain

 

マイクロソフトの公式の説明によると「比較演算子のような記号」は、単なる論理または数学記号(logical or mathematical symbols)であり、比較演算子ではない文字列とされています。

Any text criteria or any criteria that includes logical or mathematical symbols must be enclosed in double quotation marks (").
文字列条件や、論理記号または数学記号を含む条件は、二重引用符 (") で囲む必要があります。

https://support.office.com/en-us/article/sumif-function-169b8c99-c05c-4483-a712-1697a653039b?ui=en-US&rs=en-US&ad=US

 

この「比較演算子のような記号」は、もはや演算子としての機能はなく、ワイルドカードと同じ特殊な文字列扱いです。したがって、ワイルドカードと同じようにダブルクォーテーションで囲む必要があるのです。

f:id:waenavi:20200612122429j:plain

 

(3)TRUE/FALSEが異なることがある

「比較演算子のような記号」は、比較演算子そのものではなく仕様も異なります。繰り返しになりますが、比較演算子のような記号は、あくまで条件付き統計関数だけに例外的に使用が認められた特殊な文字列です。

比較演算ではTRUEだったとしても、検索条件で抽出されないこともあります。逆に、比較演算ではFALSEだったとしても、検索条件で抽出されることもあります。比較演算の結果が、検索条件における抽出と必ずしも一致するわけではないのです。比較演算子と「比較演算子のような記号」の細かい仕様の違いについて、詳しくはこちらの記事をご覧ください。

 

4.平均以上

問題

セル範囲B1:B6のうち、平均値以上のセルの個数を数えるにはどのような方法があるか。

f:id:waenavi:20200612122700j:plain

 

解説

平均を求めます(参考:【Excel関数】平均AVERAGEは、数値の個数COUNTを意識して使うこと)。

f:id:waenavi:20200612122806j:plain

 

これを参照して平均値以上の個数を求めます。比較演算子のような記号はダブルクォーテーションで囲みますが、&やセル参照はダブルクォーテーションで囲んではいけません。

  • =COUNTIF(B1:B6,">="&E1)

f:id:waenavi:20200612122833j:plain

 

セル参照ではなく、関数を用いる場合も同じです。

  • =COUNTIF(B1:B6,">="&AVERAGE(B1:B6))

f:id:waenavi:20200612122928j:plain

 

平均値が200なので、「=COUNTIF(B1:B6,">=200")」と入力しているのと同じです。

f:id:waenavi:20200612122951j:plain

 

5.日付の場合

問題

セル範囲A1:A6のうち「2020/6/1」の行についてB列の数値の合計を求めるにはどのような方法があるか。また、2020/6/1以降の行についてB列の数値の合計を求めるにはどのような方法があるか。

f:id:waenavi:20200612123048j:plain

 

解説

A列の日付はシリアル値で入力されているため、数値を検索するのと同じように考えることができます。しかし、検索条件を「2020/6/1」とするのは間違いです。

  • =SUMIF(A1:A6,2020/6/1,B1:B6)

f:id:waenavi:20200612123308j:plain

 

数式の中でダブルクォーテーションで囲まずにスラッシュ「/」を使用すると、演算子とみなされ、割り算となるからです。

f:id:waenavi:20200612123334j:plain

 

日付にはダブルクォーテーションが必要です。なお、本来ならば1を掛けるなどして数値化するべきですが(参考:【Excel】TEXT関数で数値を日付や時刻のシリアル値に変換する、日付の変換方法まとめ)、検索条件に、数値に変換できる文字列を入力した時は自動的に数値に変換されるため、日付文字列の場合はシリアル値に変換され、正しい答えを求めることができるのです。

  • =SUMIF(A1:A6,"2020/6/1",B1:B6)

f:id:waenavi:20200612123702j:plain

 

もちろんセル参照を用いてもかまいませんが、セル参照にダブルクォーテーションをつけてはいけません。

  • =SUMIF(A1:A6,E1,B1:B6)

f:id:waenavi:20200612123727j:plain

 

2020/6/1以降の場合は先頭に不等号を付けます。

  • =SUMIF(A1:A6,">=2020/6/1",B1:B6)

f:id:waenavi:20200612123807j:plain

 

セルを参照するときは、比較演算子のような記号とセル参照を連結します。

  • =SUMIF(A1:A6,">="&E1,B1:B6)

f:id:waenavi:20200612123907j:plain

 


解説は以上です。


 

 


Copyright(C)2018-2020 waenavi, All rights reserved. [www.waenavi.com 定礎 平成三十年八月]
Youtube | 公式サイト | twitter | 著作権 | 運営者情報 | お問い合わせ