【最大10000ポイント】当たる!!質問投稿キャンペーン!

とても時間のかかる作業・・・

座席表を 毎年 おなじ条件で作っています。

ある条件があり、
毎回毎回、何時間もかかる
頭を悩ます作業なのですが、
どうにかして・・・関数などで、早く作る方法がないものか・・・・

いつも、関数などで出来ないものか考えておりますが
全く浮かんできません (・_・)
どなたか いい案があれば、教えいただきたいと質問させてもらいました!

条件
(1)過去3ヶ月間で(この場合6,5,4月)、
 横の列が1番前になった人は、2番目以降に

(2)過去3ヶ月間で、
 縦が同じ列にはならずに

(3)過去3ヶ月間で、
 隣になった人は隣にならずに

新しく7月の座席表を作りたいと思っています。

とても難しいと思いますが、よろしくお願いします。
お待ちしております。

※添付画像が削除されました。

A 回答 (2件)

こんばんは!


面白そうなのでやりかけてみたのですが・・・
ギブアップです!

条件の(2)・(3)が解消できませんでした。
↓の画像(小さすぎて見づらいと思いますので、画面を拡大してみてください)で同じ列にならないようにやろうと作業用の列を作っていますが、結果としてO列は無視してください。

とりあえず過去3か月の最前列の人は今月は最前列にならない方法です。

M列に全員の氏名一覧を作っておきます。
N3セルに
=OFFSET($A$3,,ROW(A1)-1)
として5行ほどオートフィルでコピー!
N8セルは
=OFFSET($A$10,,ROW(A1)-1)
としてこれも5行ほどコピー
N13セルも
=OFFSET($A$17,,ROW(A1)-1)
として5行ほどコピー!

P3セルは
=IF(COUNTIF($N$3:$N$17,M3),"",RAND())
Q3セルは
=IF(COUNTIF($G$3:$K$3,M3),"",RAND())
R3セルは
=IF(COUNTIF($G$3:$K$6,M3),"",RAND())
として、P3~R3セルを範囲指定 → R3セルのフィルハンドルで氏名の最終行までオートフィルでコピー!

そして今月のG3セルに
=INDEX($M$3:$M$25,MATCH(SMALL($P$3:$P$25,COLUMN(A1)),$P$3:$P$25,0))
という数式を入れK3セルまでコピー

G4セルに
=INDEX($M$3:$M$25,MATCH(SMALL($Q$3:$Q$25,(ROW(A1)-1)*5+COLUMN(A1)),$Q$3:$Q$25,0))
としてK4セルまでコピー → そのままK6まで下へコピー!

最後にH7セルに
=INDEX($M$3:$M$25,MATCH(SMALL($R$3:$R$25,COLUMN(A1)),$R$3:$R$25,0))
として3列右までコピーすると画像のような感じになります。

これでF9キーを押すたびにランダムに席順が表示されると思います。

ただし、前述のように最前列の重複はないと思いますが
列方向・隣同士は考慮していませんので
確認しながらF9キーを押してみてください。

以上、かなり強引な方法ですが少しでも時間短縮の手助けになれば良いのですが・・・m(_ _)m
「関数などで、なんとかなるのでしょうか?」の回答画像2
    • good
    • 0
この回答へのお礼

こんばんは! (^ワ^)tom04さん☆

おもしろそう って(驚^□^) 達人は、さすがです♪お疲れのところ、すみません。
毎回、わがままな、つたない説明の 面倒な質問を
快く、長い時間をかけて解いてくださって・・・・・(;_;)

ほんとうに、ありがとうございます。

作って下さった表をみて、『なるほど~!・・・そういう方法で!』
と、また 感動してしまいました。

難しくて出来ないと思っていたので、
今まで、何時間もかけていた作業が、一瞬で・・・なんて夢のようです(^0^)

初めて知った関数が沢山なので、今から表を作り、勉強してきます。
心 優しき達人・・・今日も、ありがとうございました。

お礼日時:2011/07/01 00:13

手作業で何とかなるのなら、そのままの方法で続けることをお奨めします。


理由は、質問文にない条件が加わった時、質問者さんでは 【 絶 対 に 】 対処できないと考えられるからです。


それでもアドバイス。

一度に処理するのではなく、手作業でやっていることを一つずつ処理してみましょう。
例えば、(1)の条件
 過去3ヶ月間に一番前の列になった人は2列目以降にする
…なら、対象の人を2列目以降に並べるため書き出す(他のセルやシートに書き出す事を関数で行う)
と言った具合です。

この処理を自力(他の人のアドバイスを理解して行っても良し)でできないなら、本当に手作業で行うようにしましょう。
正直、無駄な労力を使うことになります。
    • good
    • 0
この回答へのお礼

早速のアドバイス、ありがとうございます。

その方法で、今から、ひとつずつ、やってみます。

お礼日時:2011/06/30 21:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング