【Excel】WRAPROWS関数の使い方|横1行のデータを複数行の表に折り返す

スポンサーリンク

「横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
12
34
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
12
34
5No 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/105/115/125/135/145/155/16
5/175/185/195/205/215/225/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
12
34
5No 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
1234
5678
9101112

九九表のように規則的な数値テーブルを作りたいときや、連番付きのテンプレートを動的に生成したいときに重宝します。

WRAPROWSとWRAPCOLSの違い

WRAPROWSとよく似た関数に WRAPCOLS があります。引数構成も同じで、見た目もそっくりです。違いは「折り返しの方向」だけです。

項目WRAPROWSWRAPCOLS
折り返し方向行方向(横)列方向(縦)
データの流れ左→右、次の行へ上→下、次の列へ
結果の形状横長になりやすい縦長になりやすい
wrap_countの意味各行の要素数(=列数)各列の要素数(=行数)

例えば「1, 2, 3, 4, 5, 6」を wrap_count=3 で折り返した場合、結果は次のように違います。

WRAPROWS(横に折り返す)

列1列2列3
123
456

WRAPCOLS(縦に折り返す)

列1列2
14
25
36

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と組み合わせて使うことが多い関数を整理しておきます。

関数役割
WRAPCOLS1次元配列を列方向(縦)に折り返して2次元配列にする
TOROW2次元配列を横1行の1次元配列に変換する
TOCOL2次元配列を縦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関数 との組み合わせもおすすめです。

タイトルとURLをコピーしました