HPO機密日誌

自己をならふといふは、自己をわするるなり。

式典の座席表をエクセルで作る

ちょっとした式典を今週末に予定している。

ここで問題になるのが座席表。なにせ300人弱の方が集まる(私にとっては)大式典。表の上で何番テーブルの何番目とやっていてもわからない。

そこでエクセルを使って座席表を自動生成するようにした。

まず、名簿を用意しておいて、テーブルと席順で、

「No(セル/カラム)=テーブル番号 * 100 + 席順」

とする。

そこで、テーブル番号順に10席の位置を作って、順番につぎのような式を入れた。

=IF(VLOOKUP(B1*100+9,名簿!$B$2:$F$325,5)=VLOOKUP(B1*100+8,名簿!$B$2:$F$325,5),"",VLOOKUP(B1*100+9,名簿!$B$2:$F$325,5))

左から、「B1」はこのならびのテーブル番号。次の「+9」は座席順。テーブルの形をイメージしてセル毎日にぐるっと1テーブル分、この数字は指定してやる必要がある。ひとつのテーブル分つくってしまえば、あとはコピペでいける。名簿うんぬんのセル範囲指定は隣のシートで作ってある名簿。「5」はその5カラム目に氏名がはいっているので、それを読んでいる。一個前の「+8」番の席順で検索したときと比べているのは、vlookup関数ではインデックスに番号がない場合、それに一番近くて小さい方のデータを呼ぶので、10人マックスのテーブルで8人しか割り当てないと、8、9、10番目の席順に同じ人のデータが入ってしまうことを避けるため。

この結果こんな感じに名簿から自動生成される。

もうちょっとだけ補足すると、人数は次の式で出している。

=18-COUNTBLANK(B2:D7)

1テーブルあたり3×6の18セルを割り当てているので、その中でブランクのセルを引いてやれば名前の入ったセルの数=そのテーブルあたりの人数が出てくる。

「名」は「G/標準"名"」というユーザ書式設定で表示させている。テーブルも同様に「"テーブル"G/標準」という書式設定でやった。

ま、同じような羽目におちいる人がいるとは思えないけど。