エクセルで何かを比較する事って多いですよね。
そこで、思いつく範囲で、比較式のサンプル集を用意してみました。
IF関数などの条件式や、条件付き書式の条件式などにも使えますので、知って損はない情報です。
思いつき次第、随時追記していきます。
シンプルな比較式
まずはシンプルな比較式について。
比較条件に当てはまるとTRUE、違う場合はFALSEという結果が返ってきます。
一致(=)
iとxが一致しているかを比較。
一致ならTRUE、不一致ならFALSEとなる。
x以上(i >= x)
iがx以上かを比較。
以上ならTRUE、未満ならFALSEとなる。
以上なので、同値の場合はTRUEとなる。
x以下(i <= x)
iがx以下かを比較。
以下ならTRUE、超過ならFALSEとなる。
以下なので、同値の場合はTRUEとなる。
x超過(i > x)
iがxを超えているかを比較。
超過ならTRUE、以下ならFALSEとなる。
超過なので、同値の場合はFALSEとなる。
x未満(i < x)
iがx未満かを比較。
未満ならTRUE、以上ならFALSEとなる。
未満なので、同値の場合はFALSEとなる。
以外、不一致(<>)
iとxが不一致かを比較。
不一致ならTRUE、一致ならFALSEとなる。
部分一致(ワイルドカード)
ワイルドカード(*と?)を使った部分一致比較。
ワイルドカードは素の比較式やIF関数では使えないため、今回はCOUNTIF関数を使用し、条件をクリアした場合は結果が1となるようにする。
例:=A3="セイウチ*" といった式は使う事ができないため、=COUNTIF(A3,"セイウチ*")という式にし、条件に合う場合は結果が1となるようにする。
前方一致(文字列*)
前方が指定した値と一致しているかをチェック。
前方さえ一致していれば良いので、上の例の式では、セイウチ太郎はもちろん条件に当てはまるが、セイウチのみで条件に合う事になる。
後方一致(*文字列)
後方が指定した値と一致しているかをチェック。
後方さえ一致していれば良いので、上の例の式では、セイウチ太郎はもちろん条件に当てはまるが、太郎のみで条件に合う事になる。
前方一致、後方文字数のみ一致(文字列???)
前方が一致し、かつ後方の文字数は一致しているか。
文字数チェックは、?の数だけ文字があるかがチェックされる。
前方一致の後、上の例の式では条件を"セイウチ??"としているため、後方にあと2文字が必要になるので、セイウチ太郎は条件に当てはまるが、セイウチ美は文字数不足となり、条件に当てはまらない事になる。
文字数不足とは逆に、セイウチタロウのように、文字数オーバーの場合も条件不一致となる。
また、セイウチのみの場合も、文字数不足となり、条件不一致となる。
後方一致、前方文字数のみ一致(???文字列)
後方が一致し、かつ前方の文字数は一致しているか。
文字数チェックは、?の数だけ文字があるかがチェックされる。
後方一致のうえで、上の例の式では条件を"????太郎"としているため、前方にあと4文字が必要になるので、セイウチ太郎は条件に当てはまるが、アシカ太郎は文字数不足となり、条件に当てはまらない事になる。
また、太郎のみの場合も、文字数不足となり、条件不一致となる。
範囲指定
AND関数やOR関数を使うことによって、値が範囲内・範囲外かをチェックする。
ちなみに、COUNTIF関数では、条件にAND関数とOR関数は使えません。
範囲内 iがx~yの間に収まる
i値がxとyの間に収まっているかをチェック。
範囲内ならTRUE、範囲外ならFALSEとなる。
上の例では、今月分のエサ代が、50以下、30以上であればTRUEとなり、その範囲外であればFALSEとなる。
また、使用する不等号を>と<にすることで、50未満、30超という条件にもできる。
範囲外 iがx~yの間に収まらない
i値がxとyの間に収まらないかをチェック。
範囲外ならTRUE、範囲内ならFALSEとなる。
上の例では、今月分のエサ代が、30未満、50超であればTRUEとなり、30~50の範囲内であればFALSEとなる。
また、使用する不等号を>=と<=にすることで、30以下、50以上という条件にもできる。
IF関数とCOUNTIF関数などでの表現方法の違い
一概に比較方法といっても、どこで使うかによって表現が変わります。
例えば、50以下という条件を指定したい場合を、IF関数とCOUNTIF関数で作ってみましょう。
IF式:=IF(A1>=50,"合致")
COUNTIF式:=COUNTIF(A:A,">=50")
どういう場合に書き方が変わるのかというと、相手が単体か複数かによって変わることがほとんどです。
今回の例でいえば、IF関数ならA1セル単体に対しての比較なので、A1>=50という条件式になりました。
そしてCOUNTIF関数は、A列という複数のデータに対する比較なので、">=50"という条件式になりました。
複数を相手にする場合は、純粋に条件についてのみを書き、比較対象については省略といいますか、他に対象を指定する場所が用意されてるはずなので、そちらで指定しましょう。
今回の例で使用したCOUNTIF関数でいえば、=COUNTIF(範囲,検索条件)というように、ちゃんと比較対象を指定する場所が用意されており、ここをA:Aとすることで、比較対象はA列に対してだよと指定しています。
A列に対してなんだからって、"A:A>=50"という式にはなりません。
また、比較対象が複数になる事によって、AND関数やOR関数が使えず、複数条件が指定できないという問題が出てきます。
ですが、複数条件を指定するための別関数が用意されてることが多いので、探してみてください。
例えば、COUNTIFS関数やSUMIFS関数などがあります。
今回使用した関数
最後に、当記事内で使用した関数についての紹介。
コメント