「横1行に長く並んだデータを、1行あたり7件ずつの表に整形してカレンダー風にしたい」「日付のリストを週単位の表にまとめたい」と思ったことはありませんか?
そんなときに便利なのが、Microsoft 365 と Excel 2024 で使える WRAPROWS関数 です。1次元のデータを 横方向に折り返して 複数行の2次元配列に整形してくれます。スピル機能と組み合わせれば、レイアウトの組み換えが数式ひとつで完結します。
この記事では、WRAPROWS関数の構文から、日付リストを週単位の表に整形する実例、pad_with引数の使い方、WRAPCOLSとの違い、Google Sheets を含むバージョン対応までをまとめて整理します。
ExcelのWRAPROWS関数とは?
ExcelのWRAPROWS関数(読み方:ラップロウズ)は、1次元配列の要素を横方向に折り返して2次元配列に整形する関数です。関数名は「Wrap(折り返す)+ Rows(行)」の略で、文字どおり「行方向に折り返す」動作をイメージするとわかりやすいです。
ざっくり言うと、横1行または縦1列に並んだデータを渡すと、指定した数で 左から右へ折り返し、次の行へ移ってまた左から右へ、というふうに2次元のグリッド配列を返してくれる関数です。スピル対応なので、数式を1つのセルに入れるだけで結果が複数のセルに自動展開されます。
WRAPROWS関数は、Microsoft 365 と Excel 2024 で導入された 比較的新しい関数 です。Excel 2021 以前のバージョンでは利用できないので、共有先の環境に注意が必要です(後述)。
NOTE
「スピル(spill)」とは、1つの数式の結果が複数のセルに自動的に展開される機能です。WRAPROWSは2次元配列を返すため、結果が縦横に広がります。展開先のセルに既存データがあると
#SPILL!エラーになるので、出力範囲は空けておきましょう。
WRAPROWS関数の書き方(構文と引数)
WRAPROWS関数の構文は次のとおりです。
=WRAPROWS(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 になります。
WRAPROWS関数の動作イメージ
WRAPROWS関数は、要素を 左から右へ 順番に配置していきます。wrap_count に達したら次の行に移り、また左から右へ配置する、という動きです。
例えば、A1:E1 に「1, 2, 3, 4, 5」という5個の値が横に並んでいるとします。
=WRAPROWS(A1:E1, 2)
この数式は、5個の要素を「2個ずつ横に並べる」ので、結果は次のような2列×3行の配列になります。
| 列1 | 列2 |
|---|---|
| 1 | 2 |
| 3 | 4 |
| 5 | #N/A |
「1, 2」が1行目、「3, 4」が2行目、「5」が3行目の最初に入り、残った1セルが #N/A で埋められます。これがWRAPROWSの基本動作です。pad_with を指定すれば、この #N/A を任意の値に置き換えられます。
=WRAPROWS(A1:E1, 2, "No value")
| 列1 | 列2 |
|---|---|
| 1 | 2 |
| 3 | 4 |
| 5 | No value |
実務例1:日付リストを週単位の表に整形する
縦1列に並んだ14日分の日付を、「1行あたり7日(=1週間)」の表に整形してみます。例えば、A2:A15 に2026年5月10日から14日分の日付が縦に並んでいるとします。
| A列(日付) |
|---|
| 2026/5/10 |
| 2026/5/11 |
| 2026/5/12 |
| 2026/5/13 |
| 2026/5/14 |
| 2026/5/15 |
| 2026/5/16 |
| 2026/5/17 |
| 2026/5/18 |
| 2026/5/19 |
| 2026/5/20 |
| 2026/5/21 |
| 2026/5/22 |
| 2026/5/23 |
この日付リストを「7列×2行のカレンダー風」に整形するには、空いているセル(例: C2)に次の数式を入力します。
=WRAPROWS(A2:A15, 7)
スピル機能で結果が自動展開され、次のような2次元配列が表示されます。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 5/10 | 5/11 | 5/12 | 5/13 | 5/14 | 5/15 | 5/16 |
| 5/17 | 5/18 | 5/19 | 5/20 | 5/21 | 5/22 | 5/23 |
要素を左から右へ7つずつ並べ、終わったら次の行へ、という動きで整形されます。1列の日付データから一瞬でカレンダー形式の表が作れます。曜日ヘッダは別途手入力するか、TEXT関数で曜日を生成して連結すると見栄えが整います。
TIP
シフト表・週次レポート・カレンダーなど、規則的な区切り で表を作りたいときに WRAPROWS が便利です。元データを変更すれば結果も自動で更新されるので、毎週繰り返す帳票テンプレートにも向いています。
実務例2:pad_with引数で端数セルを埋める
要素数が wrap_count で割り切れないと、最後の行に「余り」が出ます。このとき、pad_with引数で何を入れるかを指定できます。
例えば、A1:E1 に「1, 2, 3, 4, 5」の5個の値があるとします。これを wrap_count=2 で折り返すと、3行×2列のうち最後の1セルが余ります。
=WRAPROWS(A1:E1, 2, "No value")
結果は次のとおりです。
| 列1 | 列2 |
|---|---|
| 1 | 2 |
| 3 | 4 |
| 5 | No value |
最後の余ったセルが「No value」で埋められています。pad_with を省略すると、このセルは #N/A になります。
実務では、文字列なら ""(空文字)や "-"、数値なら 0 などを指定して、見た目を整えるのが定番です。空欄にしたい場合は "" を渡すのがおすすめです。
=WRAPROWS(A1:E1, 2, "")
WARNING
pad_with を省略すると
#N/Aがそのまま表示されます。集計や印刷の体裁を整えたいときは、必ず""や0などのプレースホルダーを指定しましょう。後から IFERROR でラップする方法もありますが、最初から pad_with を指定するほうがシンプルで読みやすい数式になります。
実務例3:SEQUENCE関数と組み合わせて連番表を作る
WRAPROWSは、他のスピル対応関数と組み合わせると応用範囲が広がります。例えば、SEQUENCE関数で連番を生成し、WRAPROWSで表に整形する組み合わせは便利です。
「1〜12を3行×4列の表に整形する」場合、次のように書きます。
=WRAPROWS(SEQUENCE(12), 4)
SEQUENCE(12) で「1, 2, 3, …, 12」の縦1列の配列を作り、それを WRAPROWS で4個ずつ横に折り返します。結果は次のとおりです。
| 列1 | 列2 | 列3 | 列4 |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
九九表のように規則的な数値テーブルを作りたいときや、連番付きのテンプレートを動的に生成したいときに重宝します。
WRAPROWSとWRAPCOLSの違い
WRAPROWSとよく似た関数に WRAPCOLS があります。引数構成も同じで、見た目もそっくりです。違いは「折り返しの方向」だけです。
| 項目 | WRAPROWS | WRAPCOLS |
|---|---|---|
| 折り返し方向 | 行方向(横) | 列方向(縦) |
| データの流れ | 左→右、次の行へ | 上→下、次の列へ |
| 結果の形状 | 横長になりやすい | 縦長になりやすい |
| wrap_countの意味 | 各行の要素数(=列数) | 各列の要素数(=行数) |
例えば「1, 2, 3, 4, 5, 6」を wrap_count=3 で折り返した場合、結果は次のように違います。
WRAPROWS(横に折り返す)
| 列1 | 列2 | 列3 |
|---|---|---|
| 1 | 2 | 3 |
| 4 | 5 | 6 |
WRAPCOLS(縦に折り返す)
| 列1 | 列2 |
|---|---|
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |
TIP
迷ったら「結果を 横長 にしたいか 縦長 にしたいか」で選ぶと判断しやすいです。週単位の表やカレンダー風レイアウトには WRAPROWS、印刷用に縦に並べた商品リストには WRAPCOLS、と覚えておきましょう。
バージョン対応の注意点
WRAPROWS関数は、利用できるバージョンが限られています。導入前に環境を確認しましょう。
| 環境 | 対応状況 |
|---|---|
| Microsoft 365(サブスクリプション版) | 対応 |
| Excel 2024(買い切り版) | 対応 |
| Excel 2021 / 2019 / 2016 / 2013 | 非対応 |
| Excel for the web | 対応 |
| Excel Mobile(iOS/Android) | 対応 |
| Google Sheets | 対応(2023年2月以降) |
Excel 2021以前のバージョンでは、WRAPROWSという関数自体が存在しないため #NAME? エラーになります。古い環境のユーザーとファイルを共有する場合は、以下の代替方法を検討しましょう。
- INDEX関数 + ROW・COLUMN関数で手動配置する
- Power Query で配列を整形する
- VBAマクロで対応する
Google Sheetsでも使える
WRAPROWSは2023年2月にGoogle Sheetsにも追加されました。引数の構成や動作は Excel 版とほぼ同じです。Google Sheets と Excel を行き来するワークフローでも、配列の折り返し処理を共通の関数で書けます。
WARNING
WRAPROWSを使った数式が入ったブックを Excel 2021 以前で開くと
#NAME?エラーになります。共有先の環境がわからない場合は、結果を「値貼り付け」で確定してから渡すのが安全です。Google Sheets ユーザーとの共有ではこの問題は起きませんが、CSV や XLSX で受け渡しする際の Excel 旧版の存在には注意しましょう。
よくあるエラーと対処法
WRAPROWS関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
#VALUE! | vector に2次元配列を指定した | 1次元配列(縦1列または横1行)を指定する |
#NUM! | wrap_count が 1 未満(0 や負の数) | wrap_count に 1 以上の整数を指定する |
#N/A | 端数セルで pad_with を省略した | pad_with に "" や 0 などを指定する |
#NAME? | Excel 2021以前で WRAPROWS を使った | Microsoft 365 / Excel 2024 にアップグレードする |
#SPILL! | スピル先のセルにデータが入っている | 出力範囲のセルを空にする |
特に多いのが、すでに2次元配列のデータ(複数行×複数列のセル範囲)を vector に渡してしまう #VALUE! エラーです。WRAPROWSは 1次元配列専用 の関数なので、もし2次元データを横1行に並べ直したい場合は、先に TOROW関数 で1行に変換してから WRAPROWS にかける、という二段構えが有効です。
関連関数
WRAPROWSと組み合わせて使うことが多い関数を整理しておきます。
| 関数 | 役割 |
|---|---|
| WRAPCOLS | 1次元配列を列方向(縦)に折り返して2次元配列にする |
| TOROW | 2次元配列を横1行の1次元配列に変換する |
| TOCOL | 2次元配列を縦1列の1次元配列に変換する |
| SEQUENCE | 連続する数値の配列を生成する |
| CHOOSEROWS | 配列から指定した行だけを抽出する |
| CHOOSECOLS | 配列から指定した列だけを抽出する |
「2次元データを1行に並べ直してから、別の形に折り返す」流れでは、TOROW関数 → WRAPROWSの組み合わせが定番です。逆に、縦方向に折り返したいときは WRAPCOLS関数 を使います。連番の表を作るときは SEQUENCE関数 との合わせ技が便利です。
まとめ
ExcelのWRAPROWS関数は、横1行(または縦1列)のデータを複数行の表に整形できる便利な関数です。要点を整理すると次のとおりです。
- 構文:
=WRAPROWS(vector, wrap_count, [pad_with]) - 動作: 1次元配列を 左から右へ 折り返し、次の行へ移っていく
- wrap_count: 各行の要素数(=折り返したときの列数)を指定
- pad_with: 端数セルを埋める値(省略時は
#N/A) - 対応環境: Microsoft 365 / Excel 2024 / Google Sheets(Excel 2021以前は非対応)
日付リストを週単位の表にする・連番テンプレートを生成する・長いデータ列を読みやすい表に整形する、といった場面で活躍します。元データを書き換えれば結果も自動で更新されるので、毎週繰り返す帳票やダッシュボードにも向いています。
縦方向に折り返したい場合は WRAPCOLS関数 を、2次元データを先に1行にまとめたい場合は TOROW関数 を組み合わせると、配列操作の幅がぐっと広がります。連番表を作るなら SEQUENCE関数 との組み合わせもおすすめです。
