WRAPCOLS と WRAPROWS で 1 次元配列を 2 次元に変換する方法
重要: 記事作成時点は 2025 年 9 月です。WRAPCOLS / WRAPROWS は Microsoft 365、Excel for the web、Excel モバイルで利用可能です。
ジャンプリンク
- WRAPCOLS: 1 次元配列を複数列に変換する方法
- WRAPROWS: 1 次元配列を複数行に変換する方法
- WRAPCOLS と WRAPROWS を動的にする方法
- 動的ヘッダーを結果に追加する方法
- 複数の 1 次元配列を 1 つの 2 次元配列にする方法
- 1 次元配列を並べ替えた 2 次元配列にする方法

概要と前提
Excel の WRAPCOLS と WRAPROWS は、1 列(縦)または 1 行(横)に並んだデータを、指定した個数ごとに折り返して 2 次元の配列(スピル)で返す関数です。用途は次のような場面で便利です。
- 長いリストを読みやすい複数列に分割する(名簿、アンケート回答など)
- 小グループに分ける(会議のグループ分け、チーム編成)
- データの表示形式を変えてレポート用に整列する
定義(1 行で)
- 動的配列関数: ひとつのセルに式を入れると、その右下へ自動で結果が「スピル」する関数。テーブルとは互換性がありません。
注意: 空白は結果に 0 として返されます(必要に応じて空文字列 “” や別の値に置換してください)。

Microsoft 365 Personal
OS: Windows、macOS、iPhone、iPad、Android
無料試用: 1 か月
Microsoft 365 には Word、Excel、PowerPoint などの Office アプリ(最大 5 台)と 1 TB の OneDrive ストレージなどが含まれます。
$100 at Microsoft
Expand
Collapse
WRAPCOLS: 1 次元配列を複数列に変換する
WRAPCOLS は、入力した 1 次元配列を列方向(縦)に折り返して複数の列を作ります。基本構文は次の通りです。
=WRAPCOLS(a,b,c)- a (必須): 元の 1 次元配列(単一列または単一行)
- b (必須): 結果の各列に入れる最大要素数
- c (省略可): 余ったセルを埋める値(省略すると #N/A が入る)
重要ポイント:
- 元の配列の順序は列ごとに維持されます(上から下へ順に並ぶ)。
- 動的配列として結果がスピルするため、テーブル内のセルではなく通常セルで式を入力してください。
- 空白セルは結果で 0 として扱われます。必要なら空文字列 “” を指定して空欄にするか、IFERROR/IF 等で置換します。
例: A1:A71 に 71 名の名前がある。これを最大 6 名ずつの列に分ける場合:
=WRAPCOLS(A1:A71,6,"")- A1:A71: 元のリスト
- 6: 各列の最大人数
- “”: 余りは空欄にする


余りの扱い: 71 名を 6 名ずつに分けると余りが出ます。第三引数に “” を指定すると余白が空白になります。

補足: 逆に 2 次元配列を 1 次元に戻すには TOCOL(列方向へ)や TOROW(行方向へ)を利用します。
WRAPROWS: 1 次元配列を複数行に変換する
WRAPROWS は WRAPCOLS と同じ考えで、1 次元配列を行方向に折り返して複数行を作ります。構文:
=WRAPROWS(a,b,c)- a (必須): 元の 1 次元配列
- b (必須): 各行に返す最大要素数(横方向の要素数)
- c (省略可): 余りを埋める値(省略すると #N/A)
注意: 元の配列内の空白は 0 として返る点は WRAPCOLS と同じです。
例: A1:A71 を行に 7 名ずつ折り返して 7 列の縦グループを作る場合:
=WRAPROWS(A1:A71,7,"")
WRAPROWS も動的配列関数なので、元データの変更は結果に即時反映されますが、結果範囲を Excel テーブルに変換することはできません。
WRAPCOLS と WRAPROWS をより動的にする方法
上述の基本的な使い方だと 2 つの問題が残ります。
- 元データに新しい名前を追加しても、範囲が固定されていると拾えない。
- グループの人数(引数 b)を式内で固定していると、都度式を書き換える必要がある。
以下では WRAPCOLS を例に説明しますが、WRAPROWS に同じ原理を適用できます。
追加した値を自動で拾う方法
方法: 列全体参照とトリム参照演算子(trim reference operator)を使う。例えば列 A を末尾まで走査して余分な空白を省くには:
=WRAPCOLS(A:.A,6,"")ここで A:.A は列 A 全体を参照し、コロンの後に続くドット(A:.A)のトリム参照が最後の値の後の余分な空白を切り詰めます。

この方法で、A72 以降に名前を追加しても自動的に結果に反映されます。

グループサイズをセル参照にして可変にする方法
式内で b を固定せず、別セル(例: D1)を参照することで柔軟に変更できます。
=WRAPCOLS(A:.A,D1,"")D1 の値を変えるだけで、各列の要素数(=グループサイズ)が即座に変わります。


動的ヘッダーを結果に追加する
手作業で “Group 1”, “Group 2” と入れる代わりに、SEQUENCE と COUNTA を組み合わせて自動生成できます。
列見出しを作る例:
=SEQUENCE(1,COUNTA(C3:Z3))- SEQUENCE(1, …): 1 行分の連番を作る
- COUNTA(C3:Z3): C3:Z3 の非空セル数を数えて列数を決める

“Group “ という接頭辞を付ける例:
="Group " & SEQUENCE(1,COUNTA(C3:Z3))(日本語の出力にする場合は “Group “ を “グループ “ に置き換えてください。)
列見出しが自動で伸縮するため、グループ数に合わせて見出しが増減します。
行見出し(Player 1, Player 2 のような番号)を作る例:
="Player " & SEQUENCE(D1,1)ここで D1 が WRAPCOLS の第 2 引数(1 列あたりの要素数)を示すため、同じ値を参照して行数を作成しています。

注意: 動的配列を大量に使うとワークブックのパフォーマンスに影響するので、必要な範囲で計算を抑える工夫をしてください。
複数の 1 次元配列を 1 つの 2 次元配列にまとめる
複数列のリスト(例えば列 A と列 B)を縦に結合してから WRAPCOLS / WRAPROWS に渡すには VSTACK(縦スタック)を使います。例:
=WRAPCOLS(VSTACK(A:.A,B:.B),E1,"")- VSTACK(A:.A,B:.B): 列 A の下に列 B を連結して 1 列のリストにする
- WRAPCOLS(…,E1,””): E1 の値(例えば 6)に従って列に分割する

順序: VSTACK によって最初に A 列の要素が並び、その後に B 列の要素が続きます。別の順序が必要なら VSTACK の引数の順番を変更してください。
行に並んだリストを結合するには HSTACK を使います。
並べ替えて 2 次元配列を作る
WRAPCOLS / WRAPROWS は通常元の順序を維持します。並べ替えたい場合は SORT をネストします。
昇順 (A→Z) にして 6 個ごとに列へ折り返す例:
=WRAPCOLS(SORT(A:.A),D1,"")行に 7 個ずつ並べたい場合:
=WRAPROWS(SORT(A:.A),7,"")降順(逆アルファベット)にするには SORT の 3 引数に -1 を指定します。
=SORT(A:.A, , -1)(注)SORT 関数は 2 番目の引数で並べ替え基準列を、3 番目に順序を取ります。2 番目を省略するとデフォルトで基準は最初の列です。
代替手法と比較
WRAPCOLS / WRAPROWS が万能ではない場面と代替案をまとめます。
- Power Query: 大量データの変換やクレンジング、複雑な結合処理に強い。UI ベースで操作履歴を保存できる。ワークフローとして再利用する場合は Power Query が有利。
- ピボットテーブル: 集計やクロス集計が主目的。行と列で集計表示を切り替えたい場合に適する。
- PIVOTBY: 動的にグループ化しながら集計を行いたい場合に有益。
- 手作業の数式(OFFSET / INDEX / SEQUENCE の組合せ): 古い Excel バージョンや動的配列未対応環境で互換性を持たせる場合に検討。
選び方の目安:
- 表示だけを整えたい・小〜中規模データ: WRAPCOLS / WRAPROWS が簡潔で速い。
- ETL 的処理や大量データ・複雑な正規化: Power Query を検討。
- 集計・分析用の交差表が欲しい: ピボットテーブル。
よくある失敗例とトラブルシューティング
重要: 以下は実務でよく遭遇する問題と対策です。
- 結果が #SPILL! エラーになる
- 原因: スピル先に別の値がある。対策: スピル先をクリアするか、別のセルに式を移す。
- 空白が 0 として返って困る
- 対策: 元データで空白を “” に置換するか、WRAPCOLS(…, , “”) のように 3 引数を指定する。IF 関数で 0 を空文字列に置換してもよい。
- テーブル内で式を使おうとしてエラーになる
- 動的配列は Excel テーブルとは相性が悪いため、式は通常セルに入力する。
- 境界の空白(余り)が見栄え悪い
- 対策: 3 引数で “” や “-“ などのプレースホルダーを指定する。
- パフォーマンスが悪い
- 原因: 大量の動的配列関数や再計算の多い式。対策: 必要な範囲だけ計算する、Power Query に移行する。
実務で使えるチェックリスト(役割別)
データアナリスト:
- 元データを正規化する(余分な空白、空行を削除)
- トリム参照で拡張性を確保する
- SEQUENCE で見出しを自動化する
- テストケースで出力を確認する
業務担当マネージャー:
- グループサイズをセルで管理する(D1 など)
- 見やすさの要件(空欄、プレースホルダー)を決める
- 変更後の影響(印刷、エクスポート)を確認する
IT / セキュリティ担当:
- 共有先で動的配列が正しく表示されるか検証する
- 機密データの取り扱いルールを遵守する
- 重要なデータはバックアップする
ミニ SOP: 名簿を 6 人ごとに列に分ける手順
- 元データを A 列に準備する(A1:A に名前)。空の行が混ざっている場合は削除または整理。
- D1 にグループサイズ(例: 6)を入力。
- 任意の空セルに式を入力:
=WRAPCOLS(A:.A,D1,"")- 必要なら上の行に見出しを自動挿入:
="グループ " & SEQUENCE(1,COUNTA(セル開始:セル終了))- 結果を確認し、出力範囲を必要に応じて書式設定する(列幅、中央揃えなど)。
- ファイルを保存し、運用ルールを共有する。
テストケースと受け入れ基準
例題: A 列に 15 名がいる。D1=6。
期待結果:
- WRAPCOLS は 3 列を返す。列 1 に 1〜6 番、列 2 に 7〜12 番、列 3 に 13〜15 番(残りは “” で埋められる)。
- SEQUENCE を用いた見出しは 3 個生成される。
受け入れ基準:
- 出力がスピルし、隣接セルに値がないこと
- 元データを変更すると出力が即座に更新されること
- 空白セルは意図したプレースホルダーで埋まること
マインドセットとヒューリスティック(精神モデル)
- 「折り畳む」= データをきれいに表示するための表層的な変形。集計や整形を目的にするか、分析を目的にするかで手法を選ぶ。
- 動的 = 参照先の変更を即座に反映する。しかし即時性が必要ない静的レポートなら Power Query で一括処理して固定出力を作る方が安全。
- 単純な表示変更は関数で済ませ、ETL や複雑な結合は Power Query に任せる。
意思決定フローチャート(簡易)
flowchart TD
A[目的を決める] --> B{表示のためか集計のためか}
B -->|表示| C[WRAPCOLS / WRAPROWS]
B -->|集計| D[ピボットテーブル / PIVOTBY]
C --> E{データ量が大きいか}
E -->|はい| F[Power Query を検討]
E -->|いいえ| G[動的配列で即時反映]セキュリティとプライバシーの注意
- 個人情報(氏名、連絡先など)を含むリストを扱う場合は、共有権限と保存場所に注意してください(社内ポリシーや GDPR 等に従うこと)。
- クラウド共有時は最小権限で共有し、不要なリンクは削除する。
互換性と移行のヒント
- WRAPCOLS / WRAPROWS / VSTACK / HSTACK / SEQUENCE / SORT は比較的新しい関数で、Microsoft 365(最新の Excel)を前提にしています。
- 古い Excel(Office 2019 など)や一部の互換ソフトでは動作しない場合があるため、必要なら Power Query に置き換える、または従来の INDEX/ROW/COLUMN/INDIRECT を用いた代替式を検討してください。
小さな設計テンプレート(チェック表)
| 項目 | 入力場所 | 推奨値 / 備考 |
|---|---|---|
| 元データ | A:.A | 列全体参照 + トリム参照を推奨 |
| グループサイズ | D1 | 数値(例 6) |
| 余りの埋め方 | WRAPCOLS(…, , “”) | “” で空欄、”-“ でプレースホルダー |
| 見出し | 上部セル | SEQUENCE で自動生成 |
1 行で分かる用語集
- WRAPCOLS: 1 次元配列を指定個数ごとに列へ折り返す関数。
- WRAPROWS: 1 次元配列を指定個数ごとに行へ折り返す関数。
- VSTACK: 複数列を縦に連結して 1 列にする関数。
- HSTACK: 複数行を横に連結して 1 行にする関数。
- SEQUENCE: 連番配列を作る関数。
- SORT: 配列を並べ替える関数。
まとめ
- WRAPCOLS と WRAPROWS は、表示目的で 1 次元データを見やすく整形するのに便利な動的配列関数です。
- トリム参照(A:.A)やセル参照(D1)、SEQUENCE、VSTACK、SORT を組み合わせると、拡張性と可読性の高い仕組みが構築できます。
- 大量データや複雑な前処理が必要な場合は Power Query やピボットテーブルの方が適しています。
重要: 動的配列は便利ですが、ワークブックのパフォーマンスと共有先の互換性を常に確認してください。
追加リソース
- Excel の公式ドキュメント(Microsoft Learn)で各関数の詳細と引数を確認してください。



WRAPCOLS と WRAPROWS はデータの形を素早く整えるための強力なツールです。表示の目的、データ量、共有先の互換性を踏まえ、上記の手法を組み合わせて実務に取り入れてください。