Excel。AND関数の欠点。ワイルドカードがつかえないので、どうしたらいいの。
<AND関数・IF+COUNTIFS関数>
AかつBという条件をつくることができる「AND関数」ですが、欠点があります。
それが、ワイルドカードをつかった条件式には対応してくれないということです。
次の表をつかって説明します。
判定しないのは、所属はAからはじまり、かつ、住所には横浜市が含まれるデータなら、「○」を表示して、そうでなければ、「空欄(空白)」としたい。
AND関数をつかってみたところ、思っているように算出されません。
C2に設定した数式は、
=IF(AND(A2="A*",B2="*横浜市*"),"○","")
AND関数とワイルドカードの組み合わせは、うまくいかないようです。
AND関数で、ワイルドカードをつかわない数式にすれば、算出することはできます。
ワイルドカードを使わない数式は、
=IF(AND(MID(A2,1,1)="A",MID(B2,5,3)="横浜市"),"○","")
ただ、MID関数をつかうので、可読性が下がってしまいます。
そこで、COUNTIFS関数をつかうことで、対応することができます。
C2の数式を次のように設定して、オートフィルで数式をコピーします。
=IF(COUNTIFS(A2,"A*",B2,"*横浜市*"),"○","")
COUNTIFS関数は、ワイルドカードをつかった条件をつかうことができます。
数式を確認しておきましょう。
IF関数の引数であるCOUNTIFS関数から説明します。
COUNTIFS関数の最初の引数が、「検索条件範囲1」です。A2を設定します。
2番目の引数は、「検索条件1」。ここに「”A*”」とワイルドカードをつかっています。
「A*」とすれば、「Aで始まる」という意味です。
3番目以降は条件範囲と、条件の繰り返しです。
B2のあたいに、「*横浜市*」なのかを確認する条件式を設定します。
「*横浜市*」はB2に「横浜市という文字が含まれる」という意味です。
この2つの条件が合致したら「TRUE」、合致しない場合は「FALSE」と判定結果がでます。
IF関数をつかってTRUEならば「”○”」と表示します。