KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel でリストをランダム化する(簡単なステップ・バイ・ステップチュートリアル)

著者アマンダ・リー変更日

ランダムソートを使えば、すべてのケースが均等な確率で出現することを簡単に保証できます。このチュートリアルでは、Excel でリストを素早く簡単にランダム化(シャッフル)する方法をご紹介します。

Excel でのランダム化結果を示すスクリーンショット

動画:Excel でリストをランダム化する方法


関数でリストをランダム化する方法

このセクションでは、Excel の組み込み関数を活用してリストをシャッフルする方法をご紹介します。

RAND 関数でリストをランダム化する

お使いのExcel バージョンを問わず、RAND 関数と並べ替え機能を組み合わせることで、元のデータセットを簡単にランダムに並べ替えることができます。以下の手順に従って操作してください。

ステップ1:RAND 数式を入力する

ランダム化するリストの上にあるセルの隣のセルを選択し、以下の RAND 関数を入力して「Enter」キーを押してください。

=RAND()

セル内の RAND 関数

ステップ2:RAND 数式を他のセルにコピーする

数式セルのフィルハンドル(右下隅にある小さな緑色の四角)をダブルクリックすると、その数式が下のセルにも自動的に適用されます。

他のセルに適用された RAND 関数

ステップ3:RAND の結果を並べ替えてリストをシャッフルする

1。「B2:B8」(RAND 関数を含むリスト)を選択します。

2。「編集」グループの「ホーム」タブで、「並べ替えとフィルター」>「最小から最大への並べ替え」をクリックします。

リボン上の「小さい順に並べ替え」オプション

3。表示されたダイアログボックスで「選択範囲を拡張する」を選択して、「並べ替え」をクリックしてください。

「選択範囲を拡張する」オプションの選択

結果

これで完了です!リストは以下のようにランダムに並べ替えられました。

リストがランダム化されています

注:Excel の RAND 関数は再計算型(volatile)です。ワークシートが変更されるたびに結果が再計算されるため、並べ替え後、列 B の数値は即座に変わります。再度リストをシャッフルしたい場合は、上記のステップ3を繰り返してください。それ以外の場合は、RAND 関数を含む列を削除するだけで済みます。
RANDARRAY 関数、SORTBY 関数、ROWS 関数でリストをランダム化する(Excel 365/2021)

Microsoft 365 向け Excel や Excel 2021、または Web 版 Excel など、最新バージョンの Excel をお使いなら、RANDARRAYSORTBY、およびROWS 関数を組み合わせるだけで、指定した場所に瞬時にシャッフルされたリストを表示できます!

ステップ1:RANDARRAY、SORTBY、ROWS の数式を入力する

ランダム化結果を表示したい空白セルを選択し、以下の数式を入力してください(注:以下の数式中の「)A2:A8」は、ランダム化したい元のリストに置き換えてください)。「Enter」キーを押してください。

=SORTBY(A2:A8,RANDARRAY(ROWS(A2:A8)))

注:
  • スピル範囲(この場合は B2:B8)に空白以外のデータが含まれている場合、Excel は「#SPILL!」エラーを返します。
  • この数式はボラタイル(揮発性)です。つまり、ワークシートが変更されるたびに結果が自動で再計算されます。「F9」キーを押せば、リストをもう一度シャッフルできます。
  • 数式の結果(ランダム化されたリスト)は編集できません。ランダム化されたリストを編集する必要がある場合は、以下の手順に従ってください。

(オプション)ステップ2:数式の結果をコピー&ペーストして編集可能にする

ランダムな結果のみを表示したい場合は、このステップをスキップできます。シャッフルされたリストを編集するには、数式の結果をコピーして値として貼り付けてください。

1。数式の結果を選択し、「Ctrl」+「C」を押してコピーしましょう。

2。コピーした結果を貼り付けたいセルを右クリックします。(元の場所に値を貼り付けることも可能です。)

3。右クリックメニューから「値を貼り付け」を選択してください。

結果

これで、以下のようにシャッフルされた編集可能なリストが得られます。


2 クリックでKutools for Excel を使ってリストをランダム化する

数式を使うのに疲れましたか?アドインの力を借りて、もっと簡単にランダム並べ替えを実現しませんか?Kutools for Excel並び替え、選択、またはランダムに機能を使えば、多彩なオプションで手軽にランダム並べ替えが可能です。以下の手順に従ってください:

Kutools for Excelは300 以上の高度な機能を提供し、複雑なタスクを効率化して創造性と作業効率を高めます。AI 機能を統合したKutools は正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

まず、シャッフルしたいリストを選択します。次に、「Kutools」>「範囲」>「並び替え、選択、またはランダムに」をクリックします。「並び替え、選択、またはランダムに」ダイアログが表示されたら、「行全体」を選択して「OK」をクリックします。

リストをシャッフルするためのダイアログで「すべての行」オプションを選択

注:

VBA でリストをランダム化する方法

VBA メソッドでリストをランダムに並べ替えたい場合は、以下の手順に従ってください。

注:VBA マクロを実行すると元に戻せません。将来元のデータが必要になる場合に備えて、リストのコピーを別の場所に保存しておいてください。

ステップ1:シャッフルするリストを選択する

シャッフル対象のリストが選択されています

ステップ2:VBA コードをモジュールウィンドウにコピーする

1。「Ctrl」+「F11」を押して VBA エディターを開き、「挿入」>「標準モジュール」をクリックして、モジュールのコードウィンドウを開きます。

VBA エディターで [挿入] > [標準モジュール] をクリック

2。以下の VBA コードをコピーし、開いているモジュールウィンドウに貼り付けてください。

Sub RandomSort()
'Update by ExtendOffice
Dim xRg As Range
Dim xNum, xF, xI As Integer
Dim xWSh, xAWSh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xAWSh = Application.ActiveSheet
Set xRg = ActiveWindow.RangeSelection
Set xWSh = Worksheets.Add
xNum = xRg.Count
For xF = xNum To 1 Step -1
    xI = WorksheetFunction.RandBetween(1, xF)
    xWSh.Range("A1").Value = xRg.Item(xI)
    xRg.Item(xI) = xRg.Item(xF)
    xRg.Item(xF) = xWSh.Range("A1")
Next
xWSh.Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

ステップ3:VBA コードを実行する

コードウィンドウで「F5」キーを押すか、実行ボタンボタンをクリックして、このコードを実行してください。

コードウィンドウ内の実行ボタン

結果

リストがシャッフルされています

注:再度リストをランダム化したい場合は、上記の3ップを繰り返してください。