「縦に長ーく続く名前のリスト、もっとコンパクトな表にまとめられないかな?」
データ管理をしていると、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をお使いであれば、この動的配列を活かしたテクニックは絶対に覚えておくべき必須スキルと言えるでしょう。
コメント