- ベストアンサー
エクセルで複数のセルにあらかじめ用意した単語を重複せずにランダム表示させる方法
当方エクセルの操作について困っております。 会社内で利用したいと思っているのですがうまくいかず途方にくれております。 例としてあらかじめセルA1~A30に人名「鈴木」「田中」「佐藤」等の30個の単語を用意し、 それらをC1~C30に人名が重複しないように表示させる方法をご存知の方がいらっしゃいましたらご教授願いたくよろしくお願いいたします。 当方エクセル操作は社内で簡単な見積書などの書類を作る程度で初心者です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
くじのようにランダムに並べ替えて表示・印刷したいということでしょうか。 用意した単語は重複していないものとして、こんな方法が考えられます(手元の Excel2003 で確認)。 途中計算用にセルを30個用意し(例えば Z1~Z30 など印刷範囲の外に)、 それぞれに "=RAND()" という式を入力する。 次に、C1に "=INDEX($A$1:$A$30,RANK($Z1,$Z$1:$Z$30))" という式を入力し、 このセルをコピーして C2~C30 に貼り付ける。 ・RAND() は、 0.0 以上 1.0 未満の乱数を発生させる関数です。 Z1~Z30 には、異なる30個の数値が入ることになります(重複する可能性は非常に低いはず) ・RANK(数値,セル範囲) は、その[数値]が、[セル範囲]中の各セルの内容の中で何番目に大きいか、を返します。 C1~C30のそれぞれの中で計算される RANK は、(Z1~Z30 に重複がないとして、)1~30までの重複しない数値になります。 ・INDEX(セル範囲、数値) は、[セル範囲]中の[数値]番目のセルの内容を返します。
その他の回答 (2)
A B C D E 1 鈴木 天地 0.1267 2 田中 鈴木 0.7694 3 佐藤 立花 0.9834 4 友近 水上 0.5614 5 可愛 手塚 0.7436 … …… …… ……… 28 筒井 美川 0.6727 29 天地 紺野 0.0234 30 忌野 佐藤 0.8648 E1: =RAND() C1: =INDEX(A$1:A$30,MATCH(SMALL(E$1:E$30,ROW(A1)),E$1:E$30,0))
- Nouble
- ベストアンサー率18% (330/1783)
表示が切り替わるタイミングですが 特定のボタンなどを押さないと変わらない程度で構わないのですか? それとももっと頻繁に変わる方が良いのですか?