エクセルごはん第3回(記号○△×のチェック表を作ろう)
こんにちは。
エクセルごはんです。
第3回目になります。
今回もExcel問題を通して、楽しく脳トレしていきましょう。
このnoteは、もしも会社に入社するのにExcelの試験が必要だったら、もしも学校に入学するのにExcelの試験科目があったら、そんな状況を想定して、Excel問題を出題し、読者の皆様のExcel力をゴリゴリ鍛えていこうと思っています。
今回の問題は、○、△、×という記号があり、全部がバラバラならチェック1に○印を、2つが揃っているならチェック2に○印を、3つ全部が揃っているならチェック3に○印をつけるという問題になります。
完成形のイメージは次になります。
どうですか?出来ましたか?
IFでたくさん場合分けをしなくても、配列数式を使えばシンプルな式になるのですが、思いつきましたでしょうか?
問題を今一度おさらいしておきましょう。
記号1、記号2、記号3のそれぞれの記号、○、△、×が全部バラバラで、揃っていなかったらチェック1に○印を表示し、○、○、△のように2つの記号が揃っているならチェック2に○印を表示し、×、×、×のように3つの記号が全て揃っているならチェック3に〇印を表示します。
どうですか?配列数式を使って解けましたでしょうか?
ここからは解説に入ります。
チェック1は、セルE3に、
=IF(SUM(COUNTIF($B3:$D3,$B3:$D3))=3,"〇","")
と入力し、CtrlとShiftとEnterを押し、セルE9までオートフィル機能を使ってコピーします。
チェック2は、セルF3に、
=IF(SUM(COUNTIF($B3:$D3,$B3:$D3))=5,"○","")
と入力し、CtrlとShiftとEnterを押し、セルF9までオートフィル機能を使ってコピーします。
チェック3は、セルG3に、
=IF(SUM(COUNTIF($B3:$D3,$B3:$D3))=9,"○","")
と入力し、CtrlとShiftとEnterを押し、セルG9までオートフィル機能を使ってコピーします。
これでチェック表の完成です。
どういう仕組みになっているのか詳しく見ていきましょう。
まず、
COUNTIF($B3:$D3,$B3:$D3)
から
COUNTIF($B9:$D9,$B9:$D9)
までの配列数式が、どんな値を返すのかをCONCAT関数、もしくは、TEXTJOIN関数を使って調べてみてください。
適当なセルに、
=CONCAT(COUNTIF($B3:$D3,$B3:$D3))
と入力し、CtrlとShiftとEnterを押すと、111と表示されたはずです。これは、〇が1つ、△が1つ、×が1つ含まれているということです。
同様に、適当なセルに、
=CONCAT(COUNTIF($B4:$D4,$B4:$D4))
と入力し、CtrlとShiftとEnterを押すと、221と表示されたはずです。これは、〇が2つ、〇が2つ、△が1つ含まれているということです。
同様に、適当なセルに、
=CONCAT(COUNTIF($B5:$D5,$B5:$D5))
と入力し、CtrlとShiftとEnterを押すと、221と表示されたはずです。これは、△が2つ、△が2つ、×が1つ含まれているということです。
同様に、適当なセルに、
=CONCAT(COUNTIF($B6:$D6,$B6:$D6))
と入力し、CtrlとShiftとEnterを押すと、333と表示されたはずです。これは、×が3つ、×が3つ、×が3つ含まれているということです。
同様に、適当なセルに、
=CONCAT(COUNTIF($B7:$D7,$B7:$D7))
と入力し、CtrlとShiftとEnterを押すと、122と表示されたはずです。これは、○が1つ、△が2つ、△が2つ含まれているということです。
同様に、適当なセルに、
=CONCAT(COUNTIF($B8:$D8,$B8:$D8))
と入力し、CtrlとShiftとEnterを押すと、122と表示されたはずです。これは、△が1つ、〇が2つ、〇が2つ含まれているということです。
同様に、適当なセルに、
=CONCAT(COUNTIF($B9:$D9,$B9:$D9))
と入力し、CtrlとShiftとEnterを押すと、111と表示されたはずです。これは、×が1つ、△が1つ、〇が1つ含まれているということです。
COUNTIF($B3:$D3,$B3:$D3)
から
COUNTIF($B9:$D9,$B9:$D9)
までの配列数式が返す値は、全部の記号がバラバラな時は、111となり、2つの記号が揃っている時は、221や122や212になり、全部の記号が揃っている時は333になることが分かります。このからくりが分かれば、これをSUM関数で合計してあげれば、3や5や9の時にIF関数で場合分けすればチェック表を作ることができるという訳です。
なかなか興味深いですよね。
配列数式を使えばIF関数での場合分けがグッと楽になりました。
おつかれさまでした。
これで配列数式使いに一歩近づけましたでしょうか。
次回も配列数式を使った問題になりますので、エクセルごはんの読者になれば、着実に配列数式使いへの道を歩めますよ。
お楽しみに。