いきなり答える備忘録

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

(Excel)セルに特定の文字が入っていたら特定の文字を返す方法

 Excelで、セルにある特定の文字列が入っていたら(隣のセルに)特定の文字列を表示する方法についてです。
 さまざまな例が考えられますが、ここでは基本的なものをいくつか紹介します。

セルに特定の文字が入っていたら特定の文字を返す例

 次の画像中のデータでは、各個人の「ランク」(A~D)が記録されています。
 それぞれについてこの値が「A」か判定し、「A」なら隣のD列に「合格」と表示させるものとします。



 まずD3セルに次のような式を入力します。

 D3セル

=IF(C3="A","合格","")

 
 IF関数は、条件が満たされるかどうかに応じて異なる結果を表示させるための関数です。これを使ってC3セルの値が「A」なら「合格」を、そうでなければ空文字列を表示させています。
 空文字列(空文字)というのは特殊な値で、文字列ではあるものの、見た目上は何も表示されないというものです。



 そのまま数式をD9セルまでフィルコピー(D3セルの右下の小さい四角をダブルクリックまたはD9までドラッグ)すれば、それぞれのセルに(隣のC列の値に応じた)結果が表示されます。

 


 上記のようにIF関数では条件を満たす場合と満たさない場合に表示させる内容をそれぞれ指定することができるので、条件を満たさない場合に表示する文字列ももちろん指定できます。次の画像ではランクが「A」でない場合に「不合格」と表示するように指定しています。

 D3セル(D9セルまでフィルコピー)

=IF(C3="A","合格","不合格")

条件を満たす値を複数指定する例

 次の画像のデータは上記の例と同じですが、ランクが「A」または「B」なら「合格」と表示させるようにしています。

 D3セル(D9セルまでフィルコピー)

=IF(OR(C3="A",C3="B"),"合格","")

 
 IF関数にOR関数を組み合わせています。
 OR関数の内部に記した式(3つ以上を指定することもできます)のうち1つでも満たされれば条件が満たされるものとみなされ、「合格」が表示されます。



 また、IFS関数を使う方法も考えられます。

 D3セル(D9セルまでフィルコピー)

=IFS(C3="A","合格",C3="B","合格",TRUE,"")

 IFS関数では条件と値の組を指定することで、最初に満たされた条件に対応する値を表示させることができます。つまりこの式は「C3セルの値が『A』なら『合格』を、C3セルの値が『B』なら『合格』を、どちらでもなければ空文字列を表示させる」という意味です。「TRUE」という条件がちょっと特殊ですが「それまでの条件に該当しない場合」という意味になります。
 IFS関数を使うと式はやや長くなりますが、表示させる内容を3種類以上に分岐させることも容易です。

複数列の値で判定する例(AND条件)

 次の画像では「1回目」と「2回目」の値が両方とも「A」であればE列に「合格」を表示させています。

 E3セル(E9セルまでフィルコピー)

=IF(AND(C3="A",D3="A"),"合格","")

 IF関数にAND関数を組み合わせています。
 AND関数の内部に記した式(3つ以上を指定することもできます)がすべて満たされれば条件が満たされるものとみなされ、「合格」が表示されます。

複数列の値で判定する例(OR条件)

 次の画像では「1回目」と「2回目」の値のどちらか(少なくとも1つ)が「A」であればE列に「合格」を表示させています。

 E3セル(E9セルまでフィルコピー)

=IF(OR(C3="A",D3="A"),"合格","")

 IF関数にOR関数を組み合わせています。
 OR関数の内部に記した式(3つ以上を指定することもできます)のうち1つでも満たされれば条件が満たされるものとみなされ、「合格」が表示されます。