4/05/2024

Excel。AND関数の欠点。ワイルドカードがつかえないので、どうしたらいいの。【trouble】

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ならば「”○”」と表示します。