Excel for Macで曲リストをランダム並べ替え(ページ番号も崩さない)SORTBY・RANDARRAYとRANDで完全解決

曲名がアルファベット順に並んだリストを「シャッフルした順番」にしたいとき、曲名だけを並べ替えるとページ番号などの付随情報がズレてしまいます。Excel for Macでは、行(レコード)単位でランダムに並べ替えるのがコツです。ここでは再現性の高い2つの方法(関数で別場所に出す/補助列で並べ替える)を、失敗しがちなポイント込みで解説します。

目次

今回のゴール:曲名+ページ番号を“行ごと”ランダムに並べ替える

「曲名の列だけ」をランダム化すると、同じ行にあるページ番号やメモ列が別の曲に紐づいてしまい、実務では使い物になりません。必要なのは行単位(同じ行の情報をセット)で順番をシャッフルすることです。

想定するデータ例:

列内容例
B列曲名All of Me
C列ページ番号p.12
D列備考(任意)キー下げ

まず押さえる前提:元データを壊さない準備

シャッフルは「うっかり元の順番を失う」事故が起きやすい作業です。特にライブ用の曲リストや台本のページ対応がある場合、最初に安全策を入れておくと安心です。

  • 元データを残す:シートを複製(右クリック→複製)するか、別シートにコピーしてから作業する
  • 範囲は“表全体”で扱う:曲名列だけでなく、ページ番号列など関連列を必ず含める
  • 見出し行があるなら見出しとして扱う:並べ替え時に「先頭行を見出しとして扱う」を正しく設定する

解決策A:関数だけで「別の場所にシャッフル結果を出す」(推奨)

Microsoft 365版のExcel(動的配列が使える環境)なら、SORTBY+RANDARRAYで“行ごと”ランダム並べ替えができます。元の表はそのまま残し、右側の空き列や別シートに結果を出せるので、運用がとても安定します。

複数列(曲名+ページ番号など)をまとめてシャッフルする

例:データ範囲が B2:C43(B=曲名、C=ページ番号)なら、次の式を空きセルに入力します。

=LET(range, B2:C43, SORTBY(range, RANDARRAY(ROWS(range))))

これでB2:C43の内容が、行単位のままランダム順に表示されます。

なぜこれで「行ごと」に崩れずシャッフルできるのか

  • rangeに「曲名+ページ番号」をセットで持たせる
  • RANDARRAY(ROWS(range))で“行数分”の乱数キーを作る
  • SORTBYでその乱数キー順に並べ替える(=シャッフル)

よくある失敗:ページ番号列を並べ替えキーにしてしまうケースです。たとえば SORTBY(range, C2:C43) のように書くと、これは「ページ番号順」に並ぶだけで、ランダムにはなりません。ランダム化したいときは並べ替えキーが乱数(RAND/RANDARRAY)である必要があります。

1列だけ(曲名だけ)を別列にシャッフル表示する

曲名列だけで良いなら、次のようにシンプルにできます。

=SORTBY(B2:B43, RANDARRAY(ROWS(B2:B43)))

ただし今回の主旨(ページ番号なども崩さない)に合わせるなら、基本は複数列をまとめてシャッフルするのがおすすめです。

表(Table)にしている場合:範囲指定ミスを減らす書き方

データが増減する運用なら、範囲を固定(B2:C43)にすると、曲が増えたときに式を直し忘れがちです。Excelの「テーブル(挿入→テーブル)」にしておくと、行が増えても追従しやすくなります。

例:テーブル名が SongList、列名が「曲名」「ページ」なら、概念的には次のように“テーブル全体”をrangeとして扱えます(環境により参照形式は調整してください)。

=LET(range, SongList[[曲名]:[ページ]], SORTBY(range, RANDARRAY(ROWS(range))))

テーブル化のメリット:

  • 曲を追加しても範囲が伸びる(メンテが楽)
  • 列名で参照でき、どの列をシャッフルするかが分かりやすい
  • 並べ替え・フィルターなどの操作も安定

「再計算のたびに順番が変わる」をどう扱う?(固定したい場合)

RAND/RANDARRAYは再計算(シートの更新)で値が変わるため、シャッフル結果も変動します。用途別に対策を選びましょう。

やりたいことおすすめ手順の要点
表示は毎回シャッフルでOKそのまま運用開くたび/更新のたびに順番が変わる
一度決めた順番を固定したいコピー→値貼り付け結果範囲をコピーし「値」として貼り付けて確定
任意のタイミングだけ更新したい計算方法を手動に手動計算にして、必要時だけ再計算する

固定する一番確実な方法は、シャッフル結果の範囲をコピーして、値貼り付け(「形式を選択して貼り付け」→「値」)で確定することです。こうすると、以降は並び順が変わりません。

ランダムの“同点”が気になる人向け:わずかな偏りを避ける工夫

RANDARRAY(またはRAND)で生成する乱数が同じ値になる確率は低いですが、ゼロではありません。もし同点が発生した場合、SORTBYは同点同士の順序が一定の規則で残ることがあり、気持ち悪いと感じることがあります。

気になる場合は、微小な連番を足して“必ず一意”にするテクニックが使えます(ランダム性を大きく損なわない範囲で)。

=LET(range, B2:C43,
k, RANDARRAY(ROWS(range)) + SEQUENCE(ROWS(range))/1000000,
SORTBY(range, k))

ポイントは、乱数に非常に小さい連番を足して、並べ替えキーが被らないようにすることです。

解決策B:補助列に乱数を作って「その列で並べ替える」(古典的で分かりやすい)

動的配列が使えない環境や、「結果をその場で並べ替えて完成させたい」場合は、補助列でRAND()を作って並べ替える方法が堅実です。Excel for Macでも手順が分かりやすく、他人に引き継ぎやすいのが強みです。

手順(曲名+ページ番号を崩さない並べ替え)

  1. 曲名リストの隣にランダム用の列を追加(例:D列に「乱数」)
  2. 乱数列の先頭(例:D2)に =RAND() を入力
  3. 最終行までコピー(オートフィル)
  4. 表全体(曲名+ページ番号+乱数列まで)を選択
  5. 「データ」タブ→「並べ替え」から、乱数列(D列)をキーに並べ替え

重要:並べ替え時に曲名列だけを選択すると、ページ番号がズレます。必ず「表全体」を選択して並べ替えてください。

並べ替えの設定で迷いやすいポイント

項目おすすめ設定理由
並べ替えキー乱数列(例:D列)乱数が“シャッフルのくじ”になる
順序昇順/降順どちらでもOK乱数なので結果はどちらでもランダム
見出し見出しあり(該当する場合)見出し行が並べ替えに巻き込まれる事故を防ぐ

「順番を固定したい」なら、並べ替え前に乱数を値にする

RAND()も再計算で変わるため、「今日のセットリストはこの順で固定したい」などの場合は、並べ替え前に乱数列を値として固定するのが確実です。

  1. 乱数列(D2:D43など)をコピー
  2. 同じ場所に「値貼り付け」
  3. その乱数列をキーに並べ替え

こうすると、再計算が走っても乱数が変わらず、並び順が安定します。

どっちを選ぶ?(AとBの比較)

観点解決策A(SORTBY+RANDARRAY)解決策B(補助列+RAND)
元データを残したい得意(別場所に出す)工夫が必要(複製推奨)
手順の分かりやすさ式が分かれば最短直感的で引き継ぎやすい
対応バージョン動的配列が必要幅広い環境で動く
順番の固定コピー→値貼り付けで確定乱数を値貼り付けしてから並べ替え
更新の自動化再計算で自動シャッフル再計算の影響を受けやすい

迷ったら、次の判断がシンプルです。

  • Microsoft 365のExcel for Macで、別の場所に結果を出して運用したい → 解決策A
  • その場で並べ替えて完成させたい/互換性重視 → 解決策B

つまずきやすい症状別チェック(原因と対処)

シャッフルにならず、意図しない順番になる

  • 原因:並べ替えキーにページ番号列など“実データ列”を指定している
  • 対処:キーは必ず乱数(RAND() / RANDARRAY())にする

曲名とページ番号の対応がズレた

  • 原因:曲名列だけを選択して並べ替えた(範囲選択ミス)
  • 対処:必ず表全体(曲名+ページ番号+関連列)を選択して並べ替える
  • 予防:テーブル化(挿入→テーブル)してから並べ替えると事故が減る

式が使えずエラー(#NAME?など)になる

  • 原因:SORTBYやRANDARRAYが使えないバージョン
  • 対処:解決策B(補助列+RAND)に切り替える

順番が勝手に変わって困る

  • 原因:乱数が再計算で更新される仕様
  • 対処:コピー→値貼り付けで確定、または計算方法を手動にして更新タイミングを管理

実務で役立つ“運用のコツ”(曲リストを本番で使う前提)

「シャッフル結果」専用の出力エリアを作る

解決策Aを使う場合、元データの右側にシャッフル結果を出すと、見比べやすい反面、列数が増えたときに窮屈になりがちです。おすすめは次のどちらかです。

  • 別シート(例:「シャッフル結果」シート)に出力して、印刷や表示を専用化
  • 右側に十分な余白を確保し、結果表の右端にメモ欄も用意

印刷やPDF化するなら「確定してから」

本番で使う曲順は、印刷やPDF化の直前に変わると致命的です。印刷前に次を徹底すると事故が減ります。

  • シャッフル結果をコピーして値貼り付けで確定
  • ページ番号や備考が曲名と一致しているか、先頭から数行だけでも目視確認
  • 印刷範囲と改ページプレビューで、見出し行の繰り返しなどを調整

曲数が多い場合は「フィルター→シャッフル」も便利

例えば「バラードだけ」「キーが合う曲だけ」のように候補を絞ってからシャッフルしたい場合、テーブルのフィルターで候補を絞り、別シートでシャッフル表示する運用が強いです。元データを汚さず、条件の切り替えも簡単になります。

まとめ:Excel for Macで“行ごと”ランダム並べ替えを成功させる要点

  • ページ番号など付随情報があるなら、行単位でシャッフルするのが絶対条件
  • Microsoft 365で動的配列が使えるなら、SORTBY+RANDARRAYで別場所に出すのが安全で速い
  • 互換性重視・その場で完成なら、補助列+RANDで表全体を並べ替える
  • 順番を固定したいときは、どちらもコピー→値貼り付けで確定

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次