エクセルの質問です

A列に47都道府県が並んでいます。

これをランダムに並べ替えたいのですが、どのような手法がありますか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/07/20 05:55:43
  • 終了:2006/07/20 06:33:06

回答(3件)

id:JunK No.1

JunK回答回数707ベストアンサー獲得回数182006/07/20 06:18:03

ポイント27pt

http://blog.mag2.com/m/log/0000062465/105307869?page=1

B1~B47 に +rand() と書く。

適当に(疑似)乱数を発生させた(F9)後、

B列:A列を選択して、

昇順 又は 降順 で並び替える。

B列の(疑似)乱数をキーにして、都道府県名を並び替えると、結果的に都道府県名はランダムに並びます。


rand()が本当の意味でランダムな数値を発生させるわけではなさそうなので、あくまでも疑似ですけど・・・。

http://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E4%B9%B1%E6%95%B...

id:mwys No.2

mwys回答回数5ベストアンサー獲得回数02006/07/20 06:19:46

ポイント27pt

http://q.hatena.ne.jp/answer

URLはダミーです。

47行すべてのB列に=RAND()と入力したあとにB列を選択し、

[編集]-[コピー]→[編集]-[形式を選択して貼り付け]を選び、

<形式を選択して貼り付け>ダイアログで[貼り付け]-[値]を選びOKを押すと乱数が張り付くと思います。

これとセットで並び替えすればよいのではないでしょうか。

id:taknt No.3

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/07/20 06:22:56

ポイント26pt

マクロ(VBA)を使うしかないですね。

標準モジュールを作成して 以下を貼り付けます。

Ctrl+q で 実行できます。



Sub Macro1()

'

' Macro1 Macro

'

' Keyboard Shortcut: Ctrl+q

'

Dim a As Integer

Dim b As Integer

Dim c As String

For a = 1 To 47

b = Rnd(1) * 46 + 1

c = Range("A" & a)

Range("A" & a) = Range("A" & b)

Range("A" & b) = c

Next a

End Sub


http://excelvba.pc-users.net/fol1/1_1.html

標準モジュールの作成の仕方は こちらを ごらんください。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません