いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)範囲内に値があるか判定・表示する方法

 Excelで、一定の範囲内に特定の値が存在するかどうか判定したり、その値があるセルを目立たせる方法についてです。値を限定せず「何らかの値があるか」を判定する例についても紹介します。

特定の値があるか判定する方法

 次の画像では、F2セルに数式を入力し、B2:D5の範囲内に「ラーメン」という値(文字列)があるかどうかを判定しています。
 結果は「3」となっており、「ラーメン」の文字列が3つ存在することを示しています。

 F2セル

=COUNTIF(B2:D5,"ラーメン")

 COUNTIF関数は指定した範囲内に、指定した値がいくつあるかを数える(カウントする)関数です。
 結果が1以上なら値が存在し、0なら存在しないことになります。



 ただし数値では判定の意味が分かりにくいので、次の画像ではIF関数と組み合わせて、値が存在することを示す「あり」の文字列を表示させています。

 F2セル

=IF(COUNTIF(B2:D5,"ラーメン"),"あり","なし")

 IF関数の第1引数(条件式)は「COUNTIF(B2:D5,"ラーメン")>0」とした方がわかりやすいかもしれませんが、0以外の数値はTRUE(真)、0ならFALSE(偽)とみなされるので「>0」を省略しています。

特定の値があるセルに色を付ける方法

 上記のように関数を使うことで特定の値の存在を判定できますが、現実的にはさらに「どこにその値があるのか」が問題になります。そこで「条件付き書式」の機能によりその値があるセルの色を変えて目立たせるのが有効ですのでやってみます。
 まず対象となるB2:D5の範囲を選択した状態で「ホーム」タブにある「条件付き書式」をクリックし、さらに「セルの強調表示ルール」から「指定の値に等しい」を選択します。

 


 小さなダイアログが出ます。
 この左側にある入力欄に指定する値(ラーメン)を入力すると、該当するセルに自動的に色が付きます。
 配色については右側にあるプルダウンをクリックして変更することもできます。

 


 少し難しくなりますが別の手順も紹介します。
 B2:D5の範囲を選択した状態で「ホーム」タブにある「条件付き書式」をクリックし、さらに「新しいルール」を選択します。

 


 先ほどの例とは異なるダイアログが出ます。
 ここで中段にある「数式を使用して、書式設定するセルを決定」を選択し、数式欄に「=B2="ラーメン"」という数式(説明は下記参照)を入力して、さらに「書式」のボタンをクリックします。

 数式欄の数式

=B2="ラーメン"

 式の出だしを「=B2」とし、対象範囲(B2:D5)のうちもっとも左上のセルを指定することがポイントです。
 これにより各セルにおいて値が「ラーメン」と等しいかどうか判定され、等しいセルには以降で設定する書式が適用されます。


 さらに別のダイアログが現れます。「罫線」や「フォント」などのタブがあり、各種の書式を設定できます。
 ただしここでは「塗りつぶし」タブを選択して塗りつぶし色のみ変えています。

 



 (上記の画像では見えませんが)ダイアログの下部にあるOKをクリックし、さらに最初のダイアログのOKをクリックして設定を終了すると、セルに色が付きました。
 数式を使う方法はちょっと難しいですが、様々な関数と組み合わせることで応用範囲が広がるので覚えておいて損はありません。

何らかの値があるか判定する方法

 値を特定せず、範囲内に何らかの値があるかどうかを判定する方法についてです。2つの例を紹介しますが、判定内容にちょっとした違いがあります。

COUNTA関数を使う方法

 次の画像ではF2セルに数式を入力し、B2:D5の範囲内に何かの値があるかどうかを判定しています。
 結果は「6」となっており、値が6つあることを示しています。

 F2セル

=COUNTA(B2:D5)

 COUNTA関数は、範囲内の空白セル(未入力状態のセル)以外のセルをカウントする関数です。これにより何らかの値があるセルをカウントすることができます。
 なお、似た関数としてCOUNT関数がありますが、COUNT関数だと数値(及び日付時刻)しかカウントできません。



 次の画像ではIF関数と組み合わせて、値が存在することを示す「あり」の文字列を表示させています。

 F2セル

=IF(COUNTA(B2:D5),"あり","なし")

 


 ただし、COUNTA関数は空白セル以外のすべてをカウントするので、関数により空文字列("")が出力されているようなケースでもすべてカウントされます。つまりセルに値か数式が入力されていれば必ずカウントされます
 次の画像のF2セルには上記と同じ式が入力されています。一方でB2:D5の範囲には関数式が入力されていて、すべて戻り値が「""」となっているため何も値が見えません。しかしCOUNTA関数によりカウントされるためCOUNTA関数の戻り値は12となり、結果的にF2セルには「あり」と表示されます。
 これを避けたい場合は次の方法を使うのが適当です。

「<>""」の判定を使う方法

 次の画像ではF2セルに数式を入力し、B2:D5の範囲内に何かの値があるかどうかを判定しています。
 結果は「TRUE」となっており、値が存在することを示しています。

 F2セル

=OR(B2:D5<>"")

 「B2:D5<>""」の部分により、それぞれのセルに値があるかどうか判定しています(値があればTRUE、なければFALSE)。
 さらにOR関数で囲むことにより、いずれかのセルに値があればTRUE、なければFALSEの結果が返ります。



 次の画像ではIF関数と組み合わせて、値が存在することを示す「あり」の文字列を表示させています。

 
 F2セル

=IF(OR(B2:D5<>""),"あり","なし")

 


 この「<>""」による判定では、空文字列はFALSEと判定されます。つまり関数で「""」が出力されているようなセルについては値がないものとみなす判定ができます。
 次の画像のF2セルには上記と同じ式が入力されています。一方でB2:D5の範囲には関数式が入力されていて、すべて戻り値が「""」となっているため何も値が見えません。これらのセルは「B2:D5<>""」によりいずれもFALSEと判定されるので、結果的にF2セルには「なし」と表示されます。