「メンバー名簿が縦1列にずらっと並んでいて、3列のグリッドに整形して見やすくしたい」「商品コードのリストを縦長の1列から複数列のレイアウトに変えたい」と思ったことはありませんか?
そんなときに便利なのが、Microsoft 365 と Excel 2024 で使える WRAPCOLS関数 です。1列の配列を指定した行数で 縦方向に折り返して 2次元の配列に整形してくれます。スピル機能と組み合わせれば、数式ひとつでレイアウトを一瞬で変更できます。
この記事では、WRAPCOLS関数の構文から、商品リストや名簿を複数列のグリッドに整形する実例、pad_with引数の使い方、WRAPROWSとの違い、バージョン対応の注意点までをまとめて整理します。
ExcelのWRAPCOLS関数とは?
ExcelのWRAPCOLS関数(読み方:ラップコルズ)は、1次元配列の要素を縦方向に折り返して2次元配列に整形する関数です。関数名は「Wrap(折り返す)+ Cols(列)」の略で、文字どおり「列方向に折り返す」動作をイメージするとわかりやすいです。
ざっくり言うと、縦1列または横1行に並んだデータを渡すと、指定した数で 上から下へ折り返し、次の列へ移ってまた上から下へ、というふうに2次元のグリッド配列を返してくれる関数です。スピル対応なので、数式を1つのセルに入れるだけで結果が複数のセルに自動展開されます。
WRAPCOLS関数は、Microsoft 365 と Excel 2024 で導入された 比較的新しい関数 です。Excel 2021 以前のバージョンでは利用できないので、共有先の環境にも注意が必要です(後述)。
NOTE
「スピル(spill)」とは、1つの数式の結果が複数のセルに自動的に展開される機能のことです。WRAPCOLS関数は2次元配列を返すため、結果が縦横に広がります。展開先のセルに既存データがあると
#SPILL!エラーになるので、出力範囲は空けておきましょう。
WRAPCOLS関数の書き方(構文と引数)
WRAPCOLS関数の構文は次のとおりです。
=WRAPCOLS(vector, wrap_count, [pad_with])
引数は3つで、最後の pad_with は省略可能です。
| 引数 | 必須 | 説明 |
|---|---|---|
| vector | 必須 | 折り返す1次元配列またはセル参照(縦1列または横1行) |
| wrap_count | 必須 | 各列に入れる要素数(1以上の整数) |
| pad_with | 任意 | 端数セルを埋める値(省略時は #N/A) |
戻り値は2次元配列です。要素数が wrap_count で割り切れない場合、最後の列の余ったセルは pad_with で指定した値で埋められます。pad_with を省略すると #N/A になります。
WRAPCOLS関数の動作イメージ
WRAPCOLS関数は、要素を 上から下へ 順番に配置していきます。wrap_count に達したら次の列に移り、また上から下へ配置する、という動きです。
例えば、A2:F2 に「1, 2, 3, 4, 5, 6」という6個の値が横に並んでいるとします。
=WRAPCOLS(A2:F2, 3)
この数式は、6個の要素を「3個ずつ縦に並べる」ので、結果は次のような2列×3行の配列になります。
| 列1 | 列2 |
|---|---|
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |
「1, 2, 3」が1列目に縦に並び、続く「4, 5, 6」が2列目に縦に並んでいることがわかります。これがWRAPCOLSの基本動作です。
実務例1:商品リストを3列のグリッドに整形する
縦1列に並んだ商品名のリストを、3列のグリッドに整形してみます。例えば、A2:A10 に商品名が縦に9個並んでいるとします。
| A列(商品名) |
|---|
| ノートPC |
| キーボード |
| マウス |
| モニター |
| USBハブ |
| Webカメラ |
| ヘッドセット |
| 外付けSSD |
| 電源タップ |
このリストを「3行×3列のグリッド」に整形するには、空いているセル(例: C2)に次の数式を入力します。
=WRAPCOLS(A2:A10, 3)
スピル機能で結果が自動展開され、次のような2次元配列が表示されます。
| 列1 | 列2 | 列3 |
|---|---|---|
| ノートPC | モニター | ヘッドセット |
| キーボード | USBハブ | 外付けSSD |
| マウス | Webカメラ | 電源タップ |
要素を上から下へ3つずつ縦に並べ、終わったら次の列へ、という動きで整形されます。リストの体裁を変えるためにコピペで並び替える手間が、数式ひとつで解消されます。
TIP
商品リストや名簿を 印刷用に整形 する場面では、WRAPCOLSが特に便利です。1列のデータを複数列に折り返すだけで、A4用紙の幅を有効活用したレイアウトが瞬時に作れます。元データを書き換えれば結果も自動で更新されるので、メンテナンスもラクです。
実務例2:pad_with引数で端数セルを埋める
要素数が wrap_count で割り切れないと、最後の列に「余り」が出ます。このとき、pad_with引数で何を入れるかを指定できます。
例えば、A2:G2 に「1, 2, 3, 4, 5, 6, 7」の7個の値があるとします。これを wrap_count=3 で折り返すと、3行×3列のうち最後の1セルが余ります。
=WRAPCOLS(A2:G2, 3, "x")
結果は次のとおりです。
| 列1 | 列2 | 列3 |
|---|---|---|
| 1 | 4 | 7 |
| 2 | 5 | x |
| 3 | 6 | x |
最後の列の余った2セルが「x」で埋められています。pad_with を省略すると、これらのセルは #N/A になります。
実務では、文字列なら ""(空文字)や "-"、数値なら 0 などを指定して、見た目を整えるのが定番です。空欄にしたい場合は "" を渡すのがおすすめです。
=WRAPCOLS(A2:G2, 3, "")
WARNING
pad_with を省略すると
#N/Aがそのまま表示されます。集計や印刷の体裁を整えたいときは、必ず""や0などのプレースホルダーを指定しましょう。#N/Aを後から IFERROR でラップする方法もありますが、最初から pad_with を指定するほうがシンプルです。
実務例3:SEQUENCE関数と組み合わせて連番グリッドを作る
WRAPCOLSは、他のスピル対応関数と組み合わせると応用範囲が広がります。例えば、SEQUENCE関数で連番を生成し、WRAPCOLSでグリッドに整形する組み合わせは便利です。
「1〜12を3行×4列のグリッドに整形する」場合、次のように書きます。
=WRAPCOLS(SEQUENCE(12), 3)
SEQUENCE(12) で「1, 2, 3, …, 12」の縦1列の配列を作り、それをWRAPCOLSで3行ずつ縦に折り返します。結果は次のとおりです。
| 列1 | 列2 | 列3 | 列4 |
|---|---|---|---|
| 1 | 4 | 7 | 10 |
| 2 | 5 | 8 | 11 |
| 3 | 6 | 9 | 12 |
カレンダーの日付や、行番号付きのテンプレートを動的に作りたいときに重宝します。
WRAPCOLSとWRAPROWSの違い
WRAPCOLSとよく似た関数に WRAPROWS があります。引数構成も同じで、見た目もそっくりです。違いは「折り返しの方向」だけです。
| 項目 | WRAPCOLS | WRAPROWS |
|---|---|---|
| 折り返し方向 | 列方向(縦) | 行方向(横) |
| データの流れ | 上→下、次の列へ | 左→右、次の行へ |
| 結果の形状 | 縦長になりやすい | 横長になりやすい |
| wrap_countの意味 | 各列の要素数(=行数) | 各行の要素数(=列数) |
例えば「1, 2, 3, 4, 5, 6」を wrap_count=3 で折り返した場合、結果は次のように違います。
WRAPCOLS(縦に折り返す)
| 列1 | 列2 |
|---|---|
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |
WRAPROWS(横に折り返す)
| 列1 | 列2 | 列3 |
|---|---|---|
| 1 | 2 | 3 |
| 4 | 5 | 6 |
TIP
迷ったら「結果を 縦長 にしたいか 横長 にしたいか」で選ぶと判断しやすいです。商品リストを縦に並べたいなら WRAPCOLS、データを横に並べた表にしたいなら WRAPROWS、と覚えておきましょう。
バージョン対応の注意点
WRAPCOLS関数は、利用できるバージョンが限られています。導入前に環境を確認しましょう。
| 環境 | 対応状況 |
|---|---|
| Microsoft 365(サブスクリプション版) | 対応 |
| Excel 2024(買い切り版) | 対応 |
| Excel 2021 / 2019 / 2016 / 2013 | 非対応 |
| Excel for the web | 対応 |
| Excel Mobile(iOS/Android) | 対応 |
Excel 2021以前のバージョンでは、WRAPCOLSという関数自体が存在しないため #NAME? エラーになります。古い環境のユーザーとファイルを共有する場合は、以下の代替方法を検討しましょう。
- INDEX関数 + ROW・COLUMN関数で手動配置する
- Power Query で配列を整形する
- VBAマクロで対応する
WARNING
WRAPCOLSを使った数式が入ったブックを Excel 2021 以前で開くと
#NAME?エラーになります。共有先の環境がわからない場合は、結果を「値貼り付け」で確定してから渡すのが安全です。
よくあるエラーと対処法
WRAPCOLS関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
#VALUE! | vector に2次元配列を指定した | 1次元配列(縦1列または横1行)を指定する |
#NUM! | wrap_count が 1 未満(0 や負の数) | wrap_count に 1 以上の整数を指定する |
#N/A | 端数セルで pad_with を省略した | pad_with に "" や 0 などを指定する |
#NAME? | Excel 2021以前で WRAPCOLS を使った | Microsoft 365 / Excel 2024 にアップグレードする |
#SPILL! | スピル先のセルにデータが入っている | 出力範囲のセルを空にする |
特に多いのが、すでに2次元配列のデータ(複数行×複数列のセル範囲)を vector に渡してしまう #VALUE! エラーです。WRAPCOLSは 1次元配列専用 の関数なので、もし2次元データを1列に並べ直したい場合は、先に TOCOL関数 で1列に変換してから WRAPCOLS にかける、という二段構えが有効です。
関連関数
WRAPCOLSと組み合わせて使うことが多い関数を整理しておきます。
| 関数 | 役割 |
|---|---|
| WRAPROWS | 1次元配列を行方向(横)に折り返して2次元配列にする |
| TOCOL | 2次元配列を縦1列の1次元配列に変換する |
| TOROW | 2次元配列を横1行の1次元配列に変換する |
| SEQUENCE | 連続する数値の配列を生成する |
| CHOOSECOLS | 配列から指定した列だけを抽出する |
| CHOOSEROWS | 配列から指定した行だけを抽出する |
「2次元データを1列に並べ直してから、別の形に折り返す」流れでは、TOCOL関数 → WRAPCOLSの組み合わせが定番です。逆に、横方向に折り返したいときは WRAPROWS関数 を使います。連番のグリッドを作るときは SEQUENCE関数 との合わせ技が便利です。
まとめ
ExcelのWRAPCOLS関数は、1列のリストを複数列のグリッドに整形できる便利な関数です。要点を整理すると次のとおりです。
- 構文:
=WRAPCOLS(vector, wrap_count, [pad_with]) - 動作: 1次元配列を 上から下へ 折り返し、次の列へ移っていく
- wrap_count: 各列の要素数(=折り返したときの行数)を指定
- pad_with: 端数セルを埋める値(省略時は
#N/A) - 対応環境: Microsoft 365 / Excel 2024 のみ(Excel 2021以前は非対応)
商品リスト・名簿・連番テンプレートなど、1列のデータを見やすいグリッドに整形したいシーンで活躍します。元データを変更すれば結果も自動で更新されるため、繰り返し使う帳票やダッシュボードのレイアウト整形にも向いています。
横方向に折り返したい場合は WRAPROWS関数 を、2次元データを先に1列にまとめたい場合は TOCOL関数 を組み合わせると、配列操作の幅がぐっと広がります。連番グリッドを作るなら SEQUENCE関数 との組み合わせもおすすめです。
