9/07/2019

Excel。出席確認を簡単にしたい、各シートの同じ位置にあればマークをつけたい【Same position】

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に限らずバージョンによって仕様が異なっていますので、それぞれのバージョンでより良い方法を使えるようになるといいですね。