« IF関数をネスト(入れ子)するときの考え方 | トップページ | IF関数に不慣れなうちの考え方 »

IF関数で、あいまいな条件(……を含む)の処理を行う。

この記事は自分用の覚書です。

IF関数で、あいまい条件(……を含む)を指定するには、COUNTIF関数と組み合わせる。
( Windows 8 Pro 64ビット + Excel2010 )


■IF関数の書式 ( Excel ヘルプ ) より

IF(論理式, [真の場合], [偽の場合])

IF 関数は、指定された条件を評価した結果が TRUE の場合はある値を返し、評価した結果が FALSE の場合は別の値を返します。

論理式: 必ず指定します。真または偽のどちらかに評価できる値または式を指定します。

真の場合: 省略可能です。論理式引数が TRUE に評価された場合に返す値を指定します。

偽の場合: 省略可能です。論理式引数が FALSE に評価された場合に返す値を指定します。


■COUNTIF関数の書式 ( Excel ヘルプ ) より
COUNTIF(範囲, 検索条件)

COUNTIF 関数は、ある範囲に含まれるセルのうち、指定された単一の検索条件に一致するセルの個数を返します。

範囲: 必須。カウントする 1 つ以上のセルで、数値か名前、配列、または数値を含む参照で構成されます。空白と文字列値は無視されます。

検索条件: 必須。計算の対象となるセルを定義する条件を数値、式、セル範囲、または文字列で指定します。たとえば、検索条件は 32、">32"、B4、"Windows"、または "32" のようになります (式および文字列を指定する場合は半角の二重引用符 (") で囲む必要があります)。

  • 検索条件では、半角の疑問符 (?) または半角のアスタリスク (*) をワイルドカード文字として使用できます。ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは任意の文字列を表します。ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前に、"~*" のように半角のチルダ (~) を付けます。
  • 検索条件では、大文字と小文字は区別されません。たとえば、検索条件として文字列 "apples" を指定した場合と文字列 "APPLES" を指定した場合の結果は同じです。

IF関数では、ワイルドカードを使えない。

=IF(A1="*東*","含む","")

のような式を作っても、論理式は「A1セルの値が 東 を含む」とはならない。この場合は、「A1セルの値は *東* に等しい」という論理式になる。

検索条件にワイルドカードが使える COUNTIF関数を IF関数の論理式の部分に入れて、

=IF(COUNTIF(A1,"*東*")=1,"含む","")

といった式にすることで、あいまい条件(……を含む)を指定することができる。

A1セルの値が 東 という文字を含んでいる場合は、COUNTIF関数によって個数として数えるので反ってくる値は 1 になる。

IF関数の論理式が COUNTIF(A1,"*東*")=1 なので、1=1 (1 は 1 に等しい。つまり、「A1セルの値が 東 を含む」)という論理式を作ったことになる。
この場合は、論理式は「真」なので、上記の式が入っているセルには、「含む」という文字が表示される。

A1セルに 東 を含んだ文字が入っていない場合は、「偽」なので同じセルは空白になる。

=1 を付けないで、
=IF(COUNTIF(A1,"*東*"),"含む","")
という書き方にしても結果は同じになる。

しかし、IF関数の論理式は、「真または偽のどちらかに評価できる値または式を指定する」のが基本なので、 =1 を付けて

=IF(COUNTIF(A1,"*東*")=1,"含む","")

という式にするのがより望ましい。
=1 が付いていない =IF(COUNTIF(A1,"*東*"),"含む","") の書き方では、ぱっと見て、IF関数の論理式の部分が論理を構築しているようには見えない。そのことが式の意味の読み取りやすさをわずかであっても邪魔する。

組織で使うエクセルのファイルでは、「自分以外の人が見てもわかりやすい」ことに配慮するべき。

|

« IF関数をネスト(入れ子)するときの考え方 | トップページ | IF関数に不慣れなうちの考え方 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: IF関数で、あいまいな条件(……を含む)の処理を行う。:

« IF関数をネスト(入れ子)するときの考え方 | トップページ | IF関数に不慣れなうちの考え方 »