ExcelのWRAPROWS関数の使い方|1行を指定列数の配列に折り返す

スポンサーリンク

「データを横並びに整形したい」──そんな場面、ありませんか?

縦1列のリストを、一定の列数で横に並べ直すとき、手作業でコピペすると時間がかかります。
更新のたびに並べ直すのも、地味に手間ですよね。

ExcelのWRAPROWS関数を使えば、この作業を数式1つで自動化できます。
データが増えても更新不要で、常に最新の状態を保てますよ。

この記事では、WRAPROWS関数の構文・引数・使い方から、実務ユースケース・エラー対処まで解説します。

WRAPROWS関数とは?Excelでのバージョン確認

WRAPROWS関数は、1次元の配列を「行方向に折り返す」関数です。
縦1列や横1行のデータを、指定した列数ごとに折り返した2次元配列に変換できます。

読み方は「ラップロウズ」です。
“WRAP”(折り返す)と “ROWS”(行、複数形)を組み合わせた名前です。

たとえば、A列に12個のデータがあるとします。
=WRAPROWS(A1:A12, 4) と入力すると、3行×4列の配列が自動生成されます。
元のリストを更新すると、出力も自動で再整形されますよ。

Microsoft 365 / Excel 2024以降のみ使用可能

WRAPROWS関数は、以下の環境でのみ動作します。

環境対応
Microsoft 365(Windows / Mac / Web)
Excel 2024(Windows / Mac)
Excel 2021×
Excel 2019 / 2016×

スピル(数式の結果が複数セルに自動展開される機能)に対応した環境が必要です。
バージョンが古い場合は使えませんので、事前に確認してみてください。

Excel 2021以前では代替方法が必要

Excel 2021以前では、WRAPROWS関数は使えません。
INDEX関数やOFFSET関数の組み合わせで同様の処理は可能です。
ただし数式が複雑になるため、可能ならMicrosoft 365への移行を検討してみてください。

WRAPROWS関数の書き方(構文と引数)

基本構文

=WRAPROWS(vector, wrap_count, [pad_with])

引数は3つで、3つ目のみ省略できます。

引数の詳細

引数必須/省略可説明
vector必須折り返す元の1次元配列またはセル参照
wrap_count必須各行の最大列数(1以上の整数)
pad_with省略可端数セルに入れる値。省略時は #N/A

第1引数 vector(必須):折り返す元データ

vectorには、1次元の配列またはセル参照を指定します。
A1:A12のような縦1列でも、A1:L1のような横1行でも使えます。

注意点があります。
A1:C5のような複数行×複数列の2次元範囲を渡すと、#VALUE! エラーになります。
vectorは必ず1次元(1行または1列)で指定してください。

2次元データを渡したい場合はTOROW関数(2次元配列を横1行に変換する関数)と組み合わせます。
この活用法は後述の「TOROW関数との組み合わせ」で解説します。

第2引数 wrap_count(必須):各行の列数を指定

wrap_countには、各行に何列分のデータを並べるかを指定します。

たとえば wrap_count=4 なら、各行に4列分のデータが入ります。
12個のデータなら 12÷4=3 なので、3行×4列の配列になります。

0以下の値を指定すると #NUM! エラーになります。
必ず1以上の整数を指定してください。

第3引数 pad_with(省略可):端数セルの埋め方

データ件数がwrap_countで割り切れない場合、最終行に空きセルが生じます。
pad_withには、その空きセルに表示する値を指定できます。

  • 省略した場合:空きセルに #N/A が表示される
  • "" を指定した場合:空白セルになる
  • 0 を指定した場合:0で埋まる

端数が出る場面では、pad_with="" を指定するのが見た目にきれいですよ。

基本的な使い方:1列データを複数行に折り返す

縦1列リストを3列配列に変換する例

A列に果物名が12個あるとします。

A列
りんご
みかん
ぶどう
もも
なし
いちご
すいか
メロン
バナナ
キウイ
マンゴー
パイナップル

セルC1に次の数式を入力します。

=WRAPROWS(A1:A12, 4)

結果は次のような3行×4列の配列になります。

列1列2列3列4
りんごみかんぶどうもも
なしいちごすいかメロン
バナナキウイマンゴーパイナップル

データが行の左から順に詰め込まれています。
12個がwrap_count=4で割り切れるため、端数は発生しません。

NOTE

WRAPCOLS関数との違いに注目してください。WRAPCOLS(A1:A12, 4) は4行×3列の「縦長」配列になりますが、WRAPROWS(A1:A12, 4) は3行×4列の「横長」配列になります。

端数が出る場合(pad_withの活用)

データが13個で、wrap_count=4の場合を見てみましょう。

=WRAPROWS(A1:A13, 4, "")
列1列2列3列4
1番目2番目3番目4番目
5番目6番目7番目8番目
9番目10番目11番目12番目
13番目(空白)(空白)(空白)

13÷4は割り切れないため、4行目が1列分だけになります。
pad_with="" を指定しているので、残り3セルが空白になります。

pad_withを省略した場合、空白の代わりに #N/A が表示されますよ。
表示をすっきりさせたい場合は、忘れずに "" を指定してみてください。

横1行データを折り返す場合

WRAPROWSはA1:L1のような横並びのデータにも使えます。

=WRAPROWS(A1:L1, 4)

横1行の12個のデータが、3行×4列の配列に変換されます。
縦リストを渡したときと結果の形状は同じです。
入力データの向きに関わらず、同じように使えるのが便利ですよ。

WRAPCOLS関数との違いと使い分け

折り返し方向の違い(行 vs 列)

WRAPROWSと対になる関数に、WRAPCOLS(ラップコルズ)があります。
構文はまったく同じです。

=WRAPCOLS(vector, wrap_count, [pad_with])

2つの違いは「折り返す方向」だけです。

  • WRAPROWS:行方向(横)に折り返す → 横長の配列(少行・多列)
  • WRAPCOLS:列方向(縦)に折り返す → 縦長の配列(多行・少列)

たとえば {a, b, c, d, e, f} の6要素を、wrap_count=3 で折り返すとします。

WRAPROWS(各行3列)の結果:

列1列2列3
abc
def

WRAPCOLS(各列3行)の結果:

列1列2
ad
be
cf

WRAPROWSは横長の配列、WRAPCOLSは縦長の配列になります。
どちらも「折り返す」ことに変わりはありませんが、方向が逆になります。

結果の形状と典型用途の比較表

項目WRAPROWSWRAPCOLS
折り返し方向行方向(横に詰める)列方向(縦に詰める)
wrap_countの意味各行の列数各列の行数
結果の形状横長配列(少行・多列)縦長配列(多行・少列)
典型的な用途横並び比較・カレンダー形式カタログ・グリッド整形

「横に並べたい」ならWRAPROWS、「縦に整形したい」ならWRAPCOLSと覚えておくと選びやすいですよ。

WRAPCOLSの使い方は ExcelのWRAPCOLS関数の使い方 で詳しく解説しています。

実務ユースケース3選

ユースケース①:商品リストを4列横並びに自動整形

販売管理システムからエクスポートした商品名が縦1列に並んでいます。
これを4列の横並び形式に整形してみましょう。

A列(A2:A12)に商品名が12個あるとします。
セルC1に次の数式を入力します。

=WRAPROWS(A2:A12, 4, "")

変換前(A列の縦リスト):

A列
商品A
商品B
商品L

変換後(3行×4列の配列):

列1列2列3列4
商品A商品B商品C商品D
商品E商品F商品G商品H
商品I商品J商品K商品L

商品が追加・削除されても、A列を更新するだけです。
横並び表の再整形は数式が自動でやってくれますよ。

ユースケース②:月次データを四半期単位(3列)に折り返す

12ヶ月分の月次売上データがD2:D13にあるとします。
これを4行×3列(四半期単位)に折り返すと、四半期ごとの比較がしやすくなります。

=WRAPROWS(D2:D13, 3)
1月2月3月
4月5月6月
7月8月9月
10月11月12月

各行が3ヶ月(四半期)分のデータになります。
SUM関数やAVERAGE関数を四半期ごとに適用するのも簡単になりますよ。

ユースケース③:SEQUENCE+WRAPROWSでカレンダー形式の連番グリッドを生成

SEQUENCE関数(連続した数値を生成する関数)と組み合わせると、カレンダー形式の番号表が1つの数式で作れます。

たとえば、1〜28の連番を7列(曜日列)×4行(週)のグリッドにするには:

=WRAPROWS(SEQUENCE(28), 7)
1234567
891011121314
15161718192021
22232425262728

SEQUENCE(28) が {1, 2, …, 28} の連番を生成します。
WRAPROWSがそれを7列ずつの行に変換し、カレンダー形式のグリッドになります。
日付表の自動生成や座席番号の管理表にも活用できますよ。

SEQUENCE関数の詳細は ExcelのSEQUENCE関数の使い方 も参照してみてください。

TOROW関数と組み合わせた応用テクニック

2次元データを1次元化してWRAPROWSで再配置するレシピ

WRAPROWSのvectorには1次元配列しか渡せません。
しかし実務では、複数列のデータをまとめて再配置したいことがあります。

そこで活用するのがTOROW関数です。
TOROWは2次元配列を横1行に変換する関数です。
TOROWとWRAPROWSを組み合わせることで、柔軟な再配置が可能になります。

例:2列×4行のデータを再配置する

A1:B4に2列×4行(計8セル)のデータがあるとします。

=WRAPROWS(TOROW(A1:B4), 4)

処理の流れ:

TOROW(A1:B4) → 2次元データを8要素の横1行に変換
WRAPROWS(..., 4) → 2行×4列の配列に再配置

2次元データを一度1次元に「ならして」から、好きな列数で再配置できます。
「複数列のリストをまとめて横並べに整形したい」という場面で特に便利なテクニックです。

TOCOL/TOROW関数の詳細は以下の記事もあわせて参照してみてください。

エラーの原因と対処法まとめ

WRAPROWS関数で発生しうるエラーは4種類です。

エラー主な原因対処法
#N/Apad_withを省略していて端数セルがあるpad_with=""pad_with=0 を指定する
#VALUE!vectorに2次元配列を指定したTOROWで1次元化してからWRAPROWSに渡す
#NUM!wrap_countに0以下の値を指定した1以上の整数を指定する
#REF!スピル先のセルに値が入っている出力先の範囲を空にしてから入力し直す

#N/A エラー:端数が出る場合の対処

データ件数がwrap_countで割り切れないと、最終行の末尾に #N/A が出ます。
#N/A(エヌエー)は “Not Available”(利用不可)の略で、値がないことを示します。

=WRAPROWS(A1:A10, 3)  ' 10÷3=3余り1 → 最終行の末尾2セルに#N/A

空白にしたい場合:

=WRAPROWS(A1:A10, 3, "")

0で埋めたい場合:

=WRAPROWS(A1:A10, 3, 0)

端数が出る可能性があるときは、最初からpad_withを指定しておくと安心ですよ。

#VALUE! エラー:2次元配列を渡した場合

vectorに2次元範囲(複数行×複数列)を渡すと #VALUE! になります。

' NG: 2次元配列を直接渡す
=WRAPROWS(A1:C5, 4)  ' → #VALUE!

' OK: TOROWで1次元化してから渡す
=WRAPROWS(TOROW(A1:C5), 4)

vectorに渡しているセル範囲が2次元になっていないか確認してみてください。

#NUM! エラー:wrap_countの値が不正

wrap_countに0以下の値を指定すると #NUM! になります。

=WRAPROWS(A1:A12, 0)   ' → #NUM!
=WRAPROWS(A1:A12, -1)  ' → #NUM!

1以上の整数を指定してください。
セル参照でwrap_countを指定している場合は、そのセルの値を確認してみてください。

#REF! エラー:スピル先に値が入っている

WRAPROWS関数はスピルを使って結果を複数セルに展開します。
出力先の範囲に他のデータが入っていると、#REF! エラーになります。

出力先となるセル範囲を空にしてから、数式を入力し直してください。
スピルに必要な範囲が広い場合は、周囲のデータを別の場所に移動してみてください。

まとめ:WRAPROWS関数でリスト整形を自動化しよう

この記事の要点を整理します。

ポイント内容
できること1次元リストを行方向に折り返して2次元配列に変換
構文=WRAPROWS(vector, wrap_count, [pad_with])
対応環境Microsoft 365 / Excel 2024以降のみ
WRAPCOLSとの違い横長配列(WRAPROWS)vs 縦長配列(WRAPCOLS)
主なエラー#N/A / #VALUE! / #NUM! / #REF!

WRAPROWS関数を使えば、手作業で並べ替えていたリストが数式1つで自動化できます。
データが増えても更新不要なので、メンテナンスの手間もなくなりますよ。

ぜひ実務で試してみてください。

関連関数

配列操作の関連記事もあわせてどうぞ。

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