「縦に長ーく続く名前のリスト、もっとコンパクトな表にまとめられないかな?」
データ管理をしていると、1列に並んだデータを、複数行・複数列の見やすいグリッド形式に並べ替えたい、という要望は頻繁に発生します。
従来、このような整形作業には複雑な数式が必要でした。しかし、Microsoft 365で導入された動的配列関数SEQUENCEを使えば、INDEX関数と組み合わせることで、この作業が一瞬で完了します。今回はこのスマートなテクニックを解説します。
今回のゴール:縦1列の名簿を、2行4列の整列表に自動で変換する
以下の縦に並んだ「名簿」の氏名リストを、D2セルを起点とする2行4列の「整列表」に、たった一つの数式で変換することが目標です。
解決策:INDEX関数とSEQUENCE関数を組み合わせる
手順:D2 に INDEX と SEQUENCE の式を入れて Enter
縦 1 列に並んだ 8 人の名簿(B3:B10)を、2 行 4 列の表に並べ替えます。 D2 に次の式を入力して、Enter キーを押します❶。
=INDEX(B3:B10,SEQUENCE(2,4) ) B3:B10SEQUENCE(2,4)SEQUENCE(行,列)の「行 × 列」を、データの数に合わせます。8 人なら 2 行 4 列、4 行 2 列などです。例:A2:A13 の 12 件を 3 行 4 列に
=INDEX(A2:A13,SEQUENCE(3,4) ) - Microsoft 365・Excel 2021 以降で使えます。結果が広がる先のセルに何か入っていると #SPILL! になります。
- 行 × 列がデータの数より多いと、余った所は #REF! になります。

確認:1〜4 番目が 1 行目、5〜8 番目が 2 行目に並んだ

答えは 2 行 4 列の表 になりました❷。式は、次の順に計算しています。
- SEQUENCE(2,4)で、1〜8 の番号を 2 行 4 列に並べる
⇒ 1 2 3 4 / 5 6 7 8 - INDEX が、その番号の氏名を同じ位置に取り出す
⇒ D2:G3
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。
| A | B | D | E | F | G | ||
| 1 | 名簿 | 整列表 | |||||
| 2 | 番号 | 氏名 | (ここに数式を入力) | ||||
| 3 | 231 | 本堂 成重 | |||||
| 4 | 777 | 福田 致虎 | |||||
| 5 | 613 | 神保 明成 | |||||
| 6 | 729 | 水木 春恒 | |||||
| 7 | 991 | 笠間 直忠 | |||||
| 8 | 372 | 小栗 蓮竜 | |||||
| 9 | 735 | 石見 鎮連 | |||||
| 10 | 367 | 山本 紀継 |
数式の解説(内側のSEQUENCEから理解する)
このテクニックの鍵を握っているのは、内側にあるSEQUENCE関数です。
ステップ1:SEQUENCE関数で「番号の設計図」を作成する
まず、SEQUENCE(2, 4)の部分が実行されます。
SEQUENCEは、連続した数値の配列(行列)を生成する関数です。SEQUENCE(行数, 列数)のように引数を指定します。SEQUENCE(2, 4)は、「2行4列の連続した番号の表を作って」という命令になります。
この結果、Excelの内部では目に見えない、以下のような数値の配列が生成されます。
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
この2×4の数値配列が、次にINDEX関数がどのデータをどこに配置するかの「設計図」の役割を果たします。
ステップ2:INDEX関数が「設計図」に従ってデータを配置する
次に、外側のINDEX関数が、SEQUENCEの作った設計図(数値配列)を使って動作します。
- 数式全体は、
=INDEX(B3:B10, {1,2,3,4; 5,6,7,8})のように、SEQUENCEの結果をINDEXの2番目の引数(行番号)に渡したのと同じ意味になります。 INDEX関数は、「名簿リストB3:B10の中から、設計図の番号に対応するデータを取り出し、設計図と同じレイアウトで並べてください」という命令を実行します。- 具体的には、設計図の1番目の位置にはリストの1番目(本堂 成重)、2番目の位置にはリストの2番目(福田 致虎)…8番目の位置にはリストの8番目(山本 紀継)というように、データを配置していきます。
この結果、縦一列のデータが見事な2行4列の表に再配置され、スピル機能によってD2:G3の範囲に出力されるのです。
【実機で検証】人数が割り切れない・増えたときの動き
8 人を 3 行 3 列に並べる場合と、9 人目を足した場合を Excel の実機で試しました。WRAPROWS 関数とも比べています。

| 場面 | INDEX+SEQUENCE | WRAPROWS |
|---|---|---|
| マスが余る(8 人を 3 行 3 列) | 余ったセルが #REF! | 余ったセルが #N/A |
| 余ったセルを空にする | IFERROR(式,””) | WRAPROWS(A2:A9,3,””) |
| 名簿に 9 人目を足す | 表示されない | A2:.A100 と指定すれば表示される |
| 名簿に空のセルがある | 0 と表示される | 0 と表示される。A1:A8&”” で空にできる |
| 上から下へ並べる | - | WRAPCOLS(A2:A9,2) |
WRAPROWS が使える Excel なら、式は短くなります。SEQUENCE(2,4) は 2 行 4 列に固定なので、人数が増えると行と列の数も直す必要があります。A2:.A100 の「:.」は、データのある範囲だけを使う指定です。試した Microsoft 365 では動きましたが、お使いの Excel で #NAME? やエラーになるときは、WRAPROWS(FILTER(A2:A100,A2:A100<>””),4,””) のように FILTER で空を除きます。
まとめ
INDEXとSEQUENCEの組み合わせは、単なるデータ抽出だけでなく、データの再配置や整形といった高度なタスクを、驚くほどシンプルな数式で実現してくれます。
レポートのレイアウトを整えたい時や、カレンダーを作成する際など、応用範囲は非常に広いです。Microsoft 365をお使いであれば、この動的配列を活かしたテクニックは絶対に覚えておくべき必須スキルと言えるでしょう。
動的配列・スピル系の関数の全体像は、こちらのまとめで整理しています。

