「縦に長ーく続く名前のリスト、もっとコンパクトな表にまとめられないかな?」
データ管理をしていると、1列に並んだデータを、複数行・複数列の見やすいグリッド形式に並べ替えたい、という要望は頻繁に発生します。
従来、このような整形作業には複雑な数式が必要でした。しかし、Microsoft 365で導入された動的配列関数SEQUENCEを使えば、INDEX関数と組み合わせることで、この作業が一瞬で完了します。今回はこのスマートなテクニックを解説します。
今回のゴール:縦1列の名簿を、2行4列の整列表に自動で変換する
以下の縦に並んだ「名簿」の氏名リストを、D2セルを起点とする2行4列の「整列表」に、たった一つの数式で変換することが目標です。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
Excel-g733-1.xlsx (ダウンロード)
以下のサンプルデータを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 | 山本 紀継 |
解決策:INDEX関数とSEQUENCE関数を組み合わせる
セルD2に、以下の数式を一度だけ入力します。
Excel
=INDEX(B3:B10, SEQUENCE(2, 4))
数式を入力してEnterキーを押すと、元のリストの先頭から8名分の氏名が、2行4列の表形式で自動的に展開(スピル)されます。
数式の解説(内側の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の範囲に出力されるのです。
まとめ
INDEXとSEQUENCEの組み合わせは、単なるデータ抽出だけでなく、データの再配置や整形といった高度なタスクを、驚くほどシンプルな数式で実現してくれます。
レポートのレイアウトを整えたい時や、カレンダーを作成する際など、応用範囲は非常に広いです。Microsoft 365をお使いであれば、この動的配列を活かしたテクニックは絶対に覚えておくべき必須スキルと言えるでしょう。

コメント
コメント一覧 (1件)
[…] g733|【Excel配列革命】縦長のリストを美しい表に一発変換!INDEX & SEQUENC…抽出したデータを見やすい形に変換するテクニックを紹介しています。XLOOKUP関数で部分一致検索したデータをレポート形式に整形する際に有効です。 […]