曲名がアルファベット順に並んだリストを「シャッフルした順番」にしたいとき、曲名だけを並べ替えるとページ番号などの付随情報がズレてしまいます。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でも手順が分かりやすく、他人に引き継ぎやすいのが強みです。
手順(曲名+ページ番号を崩さない並べ替え)
- 曲名リストの隣にランダム用の列を追加(例:D列に「乱数」)
- 乱数列の先頭(例:D2)に
=RAND()を入力 - 最終行までコピー(オートフィル)
- 表全体(曲名+ページ番号+乱数列まで)を選択
- 「データ」タブ→「並べ替え」から、乱数列(D列)をキーに並べ替え
重要:並べ替え時に曲名列だけを選択すると、ページ番号がズレます。必ず「表全体」を選択して並べ替えてください。
並べ替えの設定で迷いやすいポイント
| 項目 | おすすめ設定 | 理由 |
|---|---|---|
| 並べ替えキー | 乱数列(例:D列) | 乱数が“シャッフルのくじ”になる |
| 順序 | 昇順/降順どちらでもOK | 乱数なので結果はどちらでもランダム |
| 見出し | 見出しあり(該当する場合) | 見出し行が並べ替えに巻き込まれる事故を防ぐ |
「順番を固定したい」なら、並べ替え前に乱数を値にする
RAND()も再計算で変わるため、「今日のセットリストはこの順で固定したい」などの場合は、並べ替え前に乱数列を値として固定するのが確実です。
- 乱数列(D2:D43など)をコピー
- 同じ場所に「値貼り付け」
- その乱数列をキーに並べ替え
こうすると、再計算が走っても乱数が変わらず、並び順が安定します。
どっちを選ぶ?(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で表全体を並べ替える
- 順番を固定したいときは、どちらもコピー→値貼り付けで確定

コメント