- 公開日:
Excelでランダムに並び替える方法
Excelで値をランダムに並び替える方法をご紹介します。
リストをランダムに並べ替えて席順を決めたい場合や、抽選やくじ引きなどを行う際にお役立てください。
また、アンケートや試験問題などの順序をランダムに入れ替えたい場合などにも役立ちます。
Excelでランダムに並び替える方法
Excelで値をランダムに並び替える方法をご紹介します。
縦方向にランダムに並び替える
値を縦方向にランダムに並び替えるにはRAND関数を使います。
RAND関数の書式は「=RAND()」で、引数はありません。入力するだけで0以上1未満の乱数を作成します。
RAND関数の詳細や使い方などについては以下の記事をご確認ください。
ExcelのRAND関数の使い方|0以上1未満の乱数を発生させる

今回は、上記の画像のA2セルからB8セルのリストをランダムに並び替えます。
A列の生徒番号とB列の名前は一緒に移動するように設定します。
リストの隣の列に「=RAND()」と入力し、Enterを押します。

RAND関数で乱数が作られました。他のセルにもオートフィルでコピーします。
セルの右下にあるフィルハンドルをドラッグします。

リストすべてに乱数が作られました。
ランダムに並べ替えたいセル範囲を選択します。
そのままキーボードのtabキーを2回押して、アクティブセルをRAND関数が入ったセルにします。

アクティブセルが、RAND関数が入力されたセルになりました。セルが白くなっていれば正しくアクティブにできています。
次にリストをランダムに並べ替えます。
①「データ」タブ、②「昇順」の順に選択します。

リストをランダムで並び替えできました。
「昇順」を選択する度にランダムに並べ替えできます。
横方向にランダムに並び替える
横方向に値をランダムに並び替える方法をご紹介します。

任意のセルに「=RAND()」と入力し、Enterを押します。

RAND関数で乱数が作られました。他のセルにもオートフィルでコピーします。
セルの右下にあるフィルハンドルをドラッグします。

①並び替えたいセル範囲を選択します。
②「データ」タブ、③「並べ替え」の順に選択します。

「並べ替え」ダイアログボックスが表示されます。
「オプション」ボタンを押します。

「並べ替えオプション」ダイアログボックスが表示されます。
①方向で「列単位」を選択して、②「OK」ボタンを押します。

「並べ替え」ダイアログボックスに戻ります。
①最優先されるキーでRAND関数を入力した行を選択します。今回は表の3行目にRAND関数を入力しているので「行3」を選択します。
②「OK」ボタンを押します。

値をランダムに横方向で並び替えできました。
VBAを使ってボタンでランダムに並び替える
VBAを使って値をランダムに並び替えるマクロをボタンを作成する方法をご紹介します。
マクロボタンを作っておくと、ボタンを押すだけでリストを何度でもランダムに並び替えできるので便利です。

今回はA列にあるA2セルからA9セルまでの名前リストを、ランダムで並び替えるマクロボタンを作成します。
①「開発」タブ、②「Visual Basic」の順に選択します。

「Microsoft Visual Basic for Applications」ダイアログボックスが表示されます。
①「挿入」、②「標準モジュール」の順に選択します。

標準モジュールが挿入されました。
以下のコードをコピーして貼り付けます。「指定したセルにあるリストをランダムで並び替える」という意味のコードです。
Sub リストをランダムに並べ替える()
Dim 名前リスト As Range
Dim i As Integer, j As Integer
Dim ランダム番号 As Integer
Dim 一時的な名前 As String
Set 名前リスト = Range("A2:A9")
Randomize
For i = 1 To 名前リスト.Rows.Count
ランダム番号 = Int((名前リスト.Rows.Count - i + 1) * Rnd + i)
一時的な名前 = 名前リスト.Cells(ランダム番号, 1).Value
名前リスト.Cells(ランダム番号, 1).Value = 名前リスト.Cells(i, 1).Value
名前リスト.Cells(i, 1).Value = 一時的な名前
Next i
End Sub
並び替えるセルを変更したい場合は、7行目の「Set 名前リスト = Range("A2:A9")」内にある「A2:A9」のセル番地を変更しましょう。

コードを貼り付けたら、「保存」を選択します。

「名前を付けて保存」ダイアログボックスが表示されます。
①ファイルの種類で「Excel マクロ有効ブック」を選択し、②保存ボタンを押します。

マクロが作成できました。次にマクロボタンを作成します。
①「挿入」、②フォームコントロールの「ボタン(フォーム コントロール)」の順に選択します。

マウスポインターが十字マークになったら、任意の位置でドラッグしてボタンを描画します。

描画が終わると、「マクロの登録」ダイアログボックスが自動的に表示されます。
①作成したマクロを選択し、②「OK」ボタンを押します。

マクロボタンが作成できました。
ボタンの名前を変更する場合は、①マクロボタンを右クリックして、②「テキストの編集」を選択します。

任意の名前を入力します。

値をランダムで入れ替えるマクロボタンが作成できました。
ボタンを押すと、A2セルからA9セルにあるリストがランダムで並べ替えられます。