テクノロジーガイド

WRAPCOLS と WRAPROWS で 1 次元配列を 2 次元に変換する方法

4 min read Excel 更新されました 22 Oct 2025
ExcelでWRAPCOLS/WRAPROWSを使い配列を再形成
ExcelでWRAPCOLS/WRAPROWSを使い配列を再形成

重要: 記事作成時点は 2025 年 9 月です。WRAPCOLS / WRAPROWS は Microsoft 365、Excel for the web、Excel モバイルで利用可能です。

ジャンプリンク

  • WRAPCOLS: 1 次元配列を複数列に変換する方法
  • WRAPROWS: 1 次元配列を複数行に変換する方法
  • WRAPCOLS と WRAPROWS を動的にする方法
  • 動的ヘッダーを結果に追加する方法
  • 複数の 1 次元配列を 1 つの 2 次元配列にする方法
  • 1 次元配列を並べ替えた 2 次元配列にする方法

Microsoft Excel illustration showing the WRAPCOLS and WRAPROWS functions with the Excel logo.

概要と前提

Excel の WRAPCOLS と WRAPROWS は、1 列(縦)または 1 行(横)に並んだデータを、指定した個数ごとに折り返して 2 次元の配列(スピル)で返す関数です。用途は次のような場面で便利です。

  • 長いリストを読みやすい複数列に分割する(名簿、アンケート回答など)
  • 小グループに分ける(会議のグループ分け、チーム編成)
  • データの表示形式を変えてレポート用に整列する

定義(1 行で)

  • 動的配列関数: ひとつのセルに式を入れると、その右下へ自動で結果が「スピル」する関数。テーブルとは互換性がありません。

注意: 空白は結果に 0 として返されます(必要に応じて空文字列 “” や別の値に置換してください)。

Microsoft 365 Personal の説明イメージ(サブスクリプション情報)

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: 各列の最大人数
  • “”: 余りは空欄にする

Excel ワークシートの列 A に一覧があり、それを WRAPCOLS で 6 名ごとの列に変換した例のスクリーンショット

WRAPCOLS の式が入力され、1 次元一覧が複数列にスピルしている様子を示すスクリーンショット

余りの扱い: 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 によって 1 列の一覧が 7 個ずつ横並びでスピルしているスクリーンショット

WRAPROWS も動的配列関数なので、元データの変更は結果に即時反映されますが、結果範囲を Excel テーブルに変換することはできません。


WRAPCOLS と WRAPROWS をより動的にする方法

上述の基本的な使い方だと 2 つの問題が残ります。

  1. 元データに新しい名前を追加しても、範囲が固定されていると拾えない。
  2. グループの人数(引数 b)を式内で固定していると、都度式を書き換える必要がある。

以下では WRAPCOLS を例に説明しますが、WRAPROWS に同じ原理を適用できます。

追加した値を自動で拾う方法

方法: 列全体参照とトリム参照演算子(trim reference operator)を使う。例えば列 A を末尾まで走査して余分な空白を省くには:

=WRAPCOLS(A:.A,6,"")

ここで A:.A は列 A 全体を参照し、コロンの後に続くドット(A:.A)のトリム参照が最後の値の後の余分な空白を切り詰めます。

列 A 全体をトリム参照で参照している WRAPCOLS のスクリーンショット

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

A72 に追加された名前をトリム参照付き WRAPCOLS が拾っているスクリーンショット

グループサイズをセル参照にして可変にする方法

式内で b を固定せず、別セル(例: D1)を参照することで柔軟に変更できます。

=WRAPCOLS(A:.A,D1,"")

D1 の値を変えるだけで、各列の要素数(=グループサイズ)が即座に変わります。

D1 を参照して WRAPCOLS の第 2 引数が動的に変わるスクリーンショット

D1 を 8 に変更して WRAPCOLS の出力が変わったスクリーンショット


動的ヘッダーを結果に追加する

手作業で “Group 1”, “Group 2” と入れる代わりに、SEQUENCE と COUNTA を組み合わせて自動生成できます。

列見出しを作る例:

=SEQUENCE(1,COUNTA(C3:Z3))
  • SEQUENCE(1, …): 1 行分の連番を作る
  • COUNTA(C3:Z3): C3:Z3 の非空セル数を数えて列数を決める

SEQUENCE と COUNTA を使って列見出しを生成しているスクリーンショット

“Group “ という接頭辞を付ける例:

="Group " & SEQUENCE(1,COUNTA(C3:Z3))

(日本語の出力にする場合は “Group “ を “グループ “ に置き換えてください。)

列見出しが自動で伸縮するため、グループ数に合わせて見出しが増減します。

行見出し(Player 1, Player 2 のような番号)を作る例:

="Player " & SEQUENCE(D1,1)

ここで D1 が WRAPCOLS の第 2 引数(1 列あたりの要素数)を示すため、同じ値を参照して行数を作成しています。

SEQUENCE で行見出しを作るスクリーンショット

注意: 動的配列を大量に使うとワークブックのパフォーマンスに影響するので、必要な範囲で計算を抑える工夫をしてください。


複数の 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 を WRAPCOLS の中に入れて複数リストを結合しているスクリーンショット

順序: 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 を検討。
  • 集計・分析用の交差表が欲しい: ピボットテーブル。

よくある失敗例とトラブルシューティング

重要: 以下は実務でよく遭遇する問題と対策です。

  1. 結果が #SPILL! エラーになる
    • 原因: スピル先に別の値がある。対策: スピル先をクリアするか、別のセルに式を移す。
  2. 空白が 0 として返って困る
    • 対策: 元データで空白を “” に置換するか、WRAPCOLS(…, , “”) のように 3 引数を指定する。IF 関数で 0 を空文字列に置換してもよい。
  3. テーブル内で式を使おうとしてエラーになる
    • 動的配列は Excel テーブルとは相性が悪いため、式は通常セルに入力する。
  4. 境界の空白(余り)が見栄え悪い
    • 対策: 3 引数で “” や “-“ などのプレースホルダーを指定する。
  5. パフォーマンスが悪い
    • 原因: 大量の動的配列関数や再計算の多い式。対策: 必要な範囲だけ計算する、Power Query に移行する。

実務で使えるチェックリスト(役割別)

データアナリスト:

  • 元データを正規化する(余分な空白、空行を削除)
  • トリム参照で拡張性を確保する
  • SEQUENCE で見出しを自動化する
  • テストケースで出力を確認する

業務担当マネージャー:

  • グループサイズをセルで管理する(D1 など)
  • 見やすさの要件(空欄、プレースホルダー)を決める
  • 変更後の影響(印刷、エクスポート)を確認する

IT / セキュリティ担当:

  • 共有先で動的配列が正しく表示されるか検証する
  • 機密データの取り扱いルールを遵守する
  • 重要なデータはバックアップする

ミニ SOP: 名簿を 6 人ごとに列に分ける手順

  1. 元データを A 列に準備する(A1:A に名前)。空の行が混ざっている場合は削除または整理。
  2. D1 にグループサイズ(例: 6)を入力。
  3. 任意の空セルに式を入力:
=WRAPCOLS(A:.A,D1,"")
  1. 必要なら上の行に見出しを自動挿入:
="グループ " & SEQUENCE(1,COUNTA(セル開始:セル終了))
  1. 結果を確認し、出力範囲を必要に応じて書式設定する(列幅、中央揃えなど)。
  2. ファイルを保存し、運用ルールを共有する。

テストケースと受け入れ基準

例題: 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)で各関数の詳細と引数を確認してください。

Excel ワークシートの一覧(列 A と列 B に別々の名前リストがある様子)

SORT を WRAPCOLS にネストしてアルファベット順に並べているスクリーンショット

WRAPROWS に SORT を組み合わせて行ごとに並べ替えているスクリーンショット


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

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

Debian 11 に Podman をインストールして使う
コンテナ

Debian 11 に Podman をインストールして使う

Apt-pinning入門:Debianで複数リポジトリを管理
Linux

Apt-pinning入門:Debianで複数リポジトリを管理

OptiScalerでFSR 4を全対応ゲームに導入する方法
ゲーム

OptiScalerでFSR 4を全対応ゲームに導入する方法

Dansguardian と Squid(NTLM)を Debian Etch に導入する方法
ネットワーク

Dansguardian と Squid(NTLM)を Debian Etch に導入する方法

AndroidでSDカードのインストールエラーを修正する方法
トラブルシューティング

AndroidでSDカードのインストールエラーを修正する方法

KNetAttach と KDE の remote:/ でネットワークフォルダーを設定
Linux ネットワーク

KNetAttach と KDE の remote:/ でネットワークフォルダーを設定