Excel。出席確認を簡単にしたい、各シートの同じ位置にあればマークをつけたい
<IF+CONCAT関数>
各シートの同じセルに○があれば、会議に出席可能で、×はNG。空白もNGという表があります。自力で視認して、シートごとですべて○であることを確認するのは、容易ではありません。
当然シートの枚数が増えたら、さらに困難になるのは明白です。
しかも、数値ではないので、3-D集計を使って、合致しているかどうかもわかりません。
では、どのようにしたらいいのでしょうか?
実は、Excel2019やOffice365のExcelならば、比較的簡単に確認することができるのです。
それでは、集計用のシートを用意します。
セル番地は、同じにしてあります。
【CONCAT関数の動きを確認】
B3に次のような数式を作成して、オートフィルを使って数式をコピーします。=CONCAT(内藤:大塚!B3)
シート間で文字を結合することが、CONCAT関数では行うことができます。
Excel2016までは、CONCATENATE関数という文字結合する関数がありました。
Office365のExcelにもあります。
CONCAT関数は、CONCATENATE関数をバージョンアップした関数なのですが、特徴として、今回のようにシート間で文字結合をすることができるようになりました。
確認のため、CONCATENATE関数で算出してみましょう。
B3には、次の数式を作成します。
=CONCATENATE(内藤:大塚!B3)
オートフィルを使って数式をコピーしてみましょう。
CONCATENATE関数では、エラーになってしまいましたね。
このように、CONCATENATE関数では簡単に処理することができなかったわけです。
CONCAT関数では、シート間で文字を結合しただけにすぎませんので、わかりやすくしていきます。
B3の数式をIF+CONCAT関数で作り直します。
B3の数式は、
=IF(CONCAT(内藤:大塚!B3)="○○○","○","×")
とすれば、簡単に算出することができます。
【CONCAT関数がない場合】
Excel2016などCONCAT関数がないバージョンを使っている現場は当然多いわけですね。その場合は、どのようにしたらいいのでしょうか?
COUNT関数系の引数の範囲には、シート間で設定することができないので、算出することができません。
要するに、COUNTIF関数とかで、「○」ならば数えるということができないわけです。
「○」なのか、そうでないのかを判断させる方法しかありませんので、IF+AND関数で対応する方法を使います。
B3の数式を次のように設定します。
=IF(AND(内藤!B3="○",高田!B3="○",大塚!B3="○"),"○","×")
これで、CONCAT関数と同じように算出することができます。
しかしながら、シートが増えるとAND関数の引数が多くなり非常に数式を作成するのにも、修正するのにも、作業が大変ですね。
Excelに限らずバージョンによって仕様が異なっていますので、それぞれのバージョンでより良い方法を使えるようになるといいですね。