Excelの関数で簡単に席替え!ポイントはランダム関数とランク関数!

学校生活を送られている方は入学から約1ヶ月が過ぎ、「そろそろ席替えしたい!」なんて思う頃ではないでしょうか?
席替えのときクジやアミダで決める方法もありますが、Excelを使うとサクッと瞬時に席替えできますよ。
しかも案外簡単な関数で出来るんです。腕試しと思って挑戦してみませんか?

またこの記事では「同じ席に座らない」条件や、「隣りに座っていた人と隣同士にならない」条件も簡単な考え方で出来るので、そちらも紹介します。
※この記事では解りやすいように12人で席替えする手順をお伝えします。

まずは準備。今の席順と氏名を入力しよう!

図0.現在はこの席順で座っています。

図1.今の席順と氏名を入力。

人数分の乱数を発生させ、乱数に順位をつけよう!

図2.人数分「乱数」を発生させ、順位をつける。

<解説>完全にランダムな1以下の少数を発生させます。
完全に同じ少数は発生しないので少数に「順位付け」ができるようになります。
このとき乱数発生に使うのはRAND関数でA2セルに「=RAND()」と入力しA13セルまでコピーします。
順位付けに使うのはRANK関数でB2セルに「=RANK(A2,$A$2:$A$15,)」と入力しB13までコピーします。
この2つの関数で席順は決まりました。
しかし図1と図2をよ~く見てみると、席替えをしたのに同じ席に座っている人がいます。
※B3セルのランクは"2″。今の席順(出席番号)も"2″なのです。同様にB10セルもランクと今の席順(出席番号)が一致しています。

同じ席に座らないためには?

同じ席にならないための考え方


同じ席にならないための答えは簡単です。
「新しい席の番号」と「前座っていた席の番号(出席番号)」の差が"0″になったら同じ席である。
もし「差が"0″」が一つでもあったら乱数を発生しなおせば良いだけの話です。

今座っている人と席替え後にまた隣同士にならないためには?

席替えしても、同じ人と隣同士になってしまっては意味のないものになってしまいます。
やはり席替え後は別の人が隣に来てくれるとフレッシュな気持ちになりますよね。

そんな希望を叶えてくれる考え方は、上下の差が1以上になれば良いという考え方です。

もう一度、図2を見てみましょう。B4セルとB5セルは連続した数字が続いています。つまりまた隣同士になっているんです。

そこでC3セルに(=B2-B3)と入力。
同様にC4セルに(=B3-B4)と入力。これをC13セルまで続けます。(C2セルには0を入力。)

C列に"1″または"-1″がでてくるとNG。
(解りやすくするためにD列に絶対値関数であるABS関数を入力した。D列に"1″が一つでも出てくるとNG。)

最後に

いかがでしたでしょうか?
難しい関数を使わなくても"差をとる"という発想で条件がクリアできるかと思います。
まずは自分で試して、そこからいろいろ発展させていただけると嬉しいです!