演奏会リハーサルの時間割問題(エクセルによる支援スプレッドシート)

亡父が高校教師をしていたので、年度初めの時間割作成の困難についてはよく聞かされていた。ここでのパラメーターは、毎日何時限まであるのか、先生は誰か、科目の種類、音楽室・図画工作室などの数、運動場をいくつに分割可能か、などであり、完璧にすべての教科を埋めるのはなかなか大変だったらしい。その後、これを計算するソフトができたとも聞いていないが、どうなっているのだろう。

室内楽コンサートでも似たような状況は出てくる。本番はいいのだが、問題はリハーサルである。各曲で奏者が異なり、奏者が集まれるとき、集まれないときがある。練習場の制約もあるだろう。

これらをパラメーターを入力するだけで、ぱたぱたっと予定表を埋めてもらえるソフトができないか、というのがY先生の問いかけであった。

当日の演奏者(ここでは fl vn vc pfの4名とした)を曲ごとに書き込み、各演奏者の都合の悪い練習スロット(日時)にその名前を書き込めば(都合によりそれ以外は0で埋めないといけないという不細工仕様ごめん)、「自動的に」曲ごとスロットごとに、練習可能なところにはO、不可能なところにはXが表示されるというエクセルシートである。ではどのスロットをどの曲に当てはめるか、の部分は人力(不細工仕様ごめん)であるので、「支援スプレッドシート」くらいかな。

赤字の部分がインプットするところで、青字が結果である。エクセルシートはこちら。

rehearsal-booking.xlsx

(魔)改造歓迎だけど、誰もこういうものには手を出さないだろうなぁ。

画像1

以下余談。忘れないうちにテクニカルなことを書いておく。

セルの中にある文字列が含まれるかどうかはCOUNTIF関数を使うらしい。

=IF(COUNTIF(対象を探すセル名あるいは範囲), ("*text*"), ("含まれている時に表示するもの),(含まれていないときに表示するもの)

という書式になるのだが、問題はこの("*text*")で、要は探している「text」の両側になにがあってもいいですよ、という意味で*をつけるので、この「text」を他のセルを参照するときにはややこしいことを書かないといけない。ここでは次のようになっている。

=IF(COUNTIF(B3),("*"&"B12"&"*"), "X", "O")

ダメなところをXにし、OKなところをOにしたのは日本式にならったまでで他意はない。これで、たとえばB3にvn vc pfと書いてあって B12に vc と書いてあれば、条件式が真なので X を返す。ここで手間取ってしまった( ;∀;)

最後の結果の欄は単純にORを使ってある。もっと簡単に書けるのだろうが、ここでは、

=IF(OR (B12="X", B17="X"....),("X"), ("O"))

という具合である。もっとすっきりかけるんだろうけど。

この記事が気に入ったらサポートをしてみませんか?