Excelの小技(3)特定の文字を含む場合に印を付ける

no10.jpg

この10人の中から、「藤」の付く名前の人だけを選びたい。
ここは定番のif式を使ってみよう。

=if(a2="*藤*","○","×")


a2セルが「*藤*」の場合は「○」を、違う場合は「×」を入れろ、という指定である。
「*」はワイルドカードと言って、不特定の文字列を指す。「*藤*」なら、「藤」の前後の文字は関係なく、途中に「藤」の入っている文字列を認識する。「後藤田」のように「藤」の前後に別の文字が入っているものは勿論、「加藤」とか「藤原」とか、前後どちらかに別の文字が入っているものでも、「藤」単独のものでも良い。これで、「藤」の付く人には「○」が、そうでない人には「×」が付く…はずである。
それでは、実際にこの式を入れてみよう。

no11

佐藤一郎君にも伊藤六郎君にも加藤十郎君にも「藤」が付いているのに、全員「×」になってしまった。
理由は判らないが、if式の中にワイルドカードは使えないようで、「*藤*」ごと文字列として認識されてしまう。本当に「*藤*」という名前の人がれば「○」が付くけれども、無論のことそんな人はいない。

そこで、countif式を使う。
countif式というのは、ある特定のセル(これを引数という)の中に、指定した文字や数字が入ったものが何個あるかを数えるためのものである。
たとえば、

=COUNTIF(B2:B11,"欠")


という式をB12セルに入れると、B2セルからB11セルの間に「欠」と入ったセルがいくつあるか、つまり、10人の中で欠席の人が何人いるか、数えてくれる。

no12.jpg

これが、counif式の一般的な使い方だろう。

ここで最初のテーマに戻ると、まず、

=countif(a2,"*藤*")


という式を使う。a2セルに「藤」の入っている文字列がある個数をカウントする式である。この式には引数が1つしかないから、答えは「1」か「0」しかない。なお、これはセルの個数を数える式だから、仮に「藤村藤男」というセルがあったとしても、答えは「1」になる。

no13.jpg

次に、b2セルが「1」なら「○」、そうでなければ(「0」なら)「×」の式をc2セル以下に入れる。

=IF(B2=1,"○","×")


no14.jpg

これで、名前に「藤」の付く人には「○」、付かない人には「×」が付いた。
当初の目的は達したのだが、計算式をもう少しスマートにしたい。そこで、最初のcountif式と次のif式を組み合わせる。

=if(countif(a2,"*藤*")=1,"○","×")


a2セルに「藤」の文字が入っていれば「○」、入っていなければ「×」を入れる、という式になる。

no15.png

なお、この数式のように引数が1つしかなく、答えが「1」(TRUE)か「0」(FALSE)しかない場合、「=1」を省略して、

=if(countif(a2,"*藤*"),"○","×")


とすることもできる。が、どういう場合に省略可能になるのかを考えるくらいなら、何も考えずに「=1」を入れてしまった方が楽だろう。ただし、もしこの計算式を入れたシートを他の人に渡すのなら、「=1」を省略した方が格好良いかもしれない。

コメントの投稿











管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://hoshinahouse.blog101.fc2.com/tb.php/691-aa6f1105