スプレッドシートのWRAPCOLS関数の使い方|列方向にラップ

スポンサーリンク

縦1列に並んだデータを、複数列の見やすい表に整形し直したい場面はありませんか。12か月分の月次データを3行4列の季節別レイアウトにしたい、50件の商品コードを10行5列のカタログ風にまとめたい、といったニーズです。

手作業でコピペするのは正直つらい作業です。行数が増えるほどミスのリスクも上がります。そこで便利なのが WRAPCOLS 関数です。縦1列の配列を指定した行数ごとに折り返し、列方向に並べ替えてくれます。

この記事では、WRAPCOLS 関数の基本構文から、端数処理のコツ、WRAPROWS との使い分けまで、実務で迷わず使えるレベルまで丁寧に解説します。

スプレッドシートのWRAPCOLS関数とは?

WRAPCOLS(ラップコルズ)は、”wrap(折り返す)” と “columns(列)” を組み合わせた関数名です。1行または1列の1次元配列を指定した行数で折り返し、複数列のレイアウトに整形します。Googleスプレッドシートでは2023年2月頃に、Microsoft 365のExcelから移植された配列関数群の1つとして利用できるようになりました。

できること:縦1列のリストを指定行数で複数列に整形

たとえば A1:A12 に1月から12月までの12か月分のデータが縦に並んでいるとします。このとき =WRAPCOLS(A1:A12, 3) と入力すると、3行ごとに折り返して4列のブロックに変換してくれます。1〜3月が1列目、4〜6月が2列目、7〜9月が3列目、10〜12月が4列目という具合です。

WRAPROWS関数との方向の違い

よく似た関数に WRAPROWS があります。両者の違いは折り返しの方向だけです。

  • WRAPCOLS: 列方向(縦)に詰めて、右へ折り返していく
  • WRAPROWS: 行方向(横)に詰めて、下へ折り返していく

名前の「COLS(列)」「ROWS(行)」は「どう折り返すか」ではなく「何を単位に詰めるか」を表している、と覚えるとスムーズです。詳しくは スプレッドシートのWRAPROWS関数の使い方 の記事もあわせてご覧ください。

WRAPCOLS関数の基本構文と引数

構文はシンプルで、引数は3つです。

=WRAPCOLS(範囲, 折り返しの値, [代替文字])

英語表記では =WRAPCOLS(range, wrap_count, [pad_with]) です。Excelでは第1引数が vector と呼ばれますが、Googleスプレッドシートの関数ヘルプでは「範囲」と表示されます。動作は完全に同じです。

第1引数:範囲(1次元の行または列)

折り返したい元データの範囲を指定します。重要なのが「1次元配列のみ受け付ける」という制約です。A1:A12(1列)や A1:L1(1行)はOKですが、A1:C5 のような複数行×複数列の2次元範囲を渡すと #VALUE! エラーになります。

2次元データを扱いたい場合は、先に TOCOL 関数などで1列に直してから渡すパターンが便利です。詳しくは後半の実務ユースケースで紹介します。

第2引数:折り返しの値(何行ごとに折り返すか)

1列あたりに入れる最大の行数を整数で指定します。ここがやや直感に反するポイントで、「列数を指定する」のではなく「1列に詰める行数を指定する」のです。

=WRAPCOLS(A1:A12, 3)   // 各列に3行ずつ入れる → 結果は3行4列
=WRAPCOLS(A1:A12, 4)   // 各列に4行ずつ入れる → 結果は4行3列
=WRAPCOLS(A1:A12, 6)   // 各列に6行ずつ入れる → 結果は6行2列

小数を渡すと切り捨てられ、0以下を指定すると #NUM! エラーになります。

第3引数:代替文字(端数セルの埋め方)

折り返した結果、最後の列にセルが余ったときの埋め方を指定します。省略するとそのセルには #N/A が入ります。業務で使うときはほぼ必ず指定しておきたい引数です。

基本的な使い方:縦1列リストを複数列に変換する

実際に手を動かしながら見ていきましょう。

サンプル:12か月データを3行4列に変換

A1:A12 に「1月」から「12月」までの文字列が入っているとします。

=WRAPCOLS(A1:A12, 3)

この式をC1セルなどに入力すると、C1:F3の範囲にスピル展開され、次のような表になります。

列1列2列3列4
1月4月7月10月
2月5月8月11月
3月6月9月12月

1列目に1〜3月(Q1)、2列目に4〜6月(Q2)、と四半期ごとのレイアウトが自動で生成できました。

サンプル:週次7日データを1週7行で整形

1日ごとの売上データなど、日次のデータを週単位の縦列に並べ替えたいケースです。28日分(4週間)のデータが A1:A28 にあるとき、次のように書きます。

=WRAPCOLS(A1:A28, 7)

各列が1週間分(7日)の縦リストになり、4列並びます。曜日ヘッダーを隣に添えれば、そのままシフト表や週報の土台として使えます。

サンプル:SEQUENCEでテスト用データを作る

「実際にデータを並べる前に、挙動を確認したい」というときは SEQUENCE 関数と組み合わせるのが便利です。

=WRAPCOLS(SEQUENCE(12), 3)

1〜12の連番が3行4列に展開されます。どこに何が入るかが数字で直感的にわかるので、引数の値を変えて試す練習にも向いています。

pad_with(パディング値)の活用:端数セルをきれいに処理する

A1:A10 の10項目を wrap_count=3 で折り返してみましょう。10÷3=3あまり1なので、4列目の2行目・3行目がどうしても余ります。このときの挙動を3パターン比較します。

省略時(#N/Aが入る)

=WRAPCOLS(A1:A10, 3)

余ったセルには #N/A が表示されます。見栄えが悪く、そのセルを参照する下流の計算にもエラーが伝播するので、業務用途ではおすすめしません。

空文字列を指定する

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

余ったセルは空白になります。見た目がきれいで、他の関数からの参照も壊れにくいので、汎用的に使える指定です。迷ったらまずこれを指定するのが無難です。

任意の値(「-」など)を指定する

=WRAPCOLS(A1:A10, 3, "-")
=WRAPCOLS(A1:A10, 3, 0)

ハイフンやゼロなど、任意の値を埋められます。「データなし」を明示的に示したいレポートや、合計計算の対象にしたいときに便利です。

pad_with の指定端数セルの表示向いている用途
省略#N/A端数が出ないと確信できるときのみ
""(空文字列)空白見栄え重視の表示用整形
"-" など任意の文字列指定した文字「該当なし」を明示したい帳票
0 など任意の数値指定した数値集計・合計対象に含めたい数値データ

WRAPROWSとの違い・使い分け

同じ「折り返し系」の兄弟関数 WRAPROWS との違いを整理します。

行方向か列方向か:感覚的な判断ポイント

縦1列のデータ [1,2,3,4,5,6]wrap_count=3 で折り返した場合、それぞれ次のようになります。

=WRAPCOLS({1;2;3;4;5;6}, 3)
// → 3行2列
//    1  4
//    2  5
//    3  6

=WRAPROWS({1;2;3;4;5;6}, 3)
// → 2行3列
//    1  2  3
//    4  5  6

WRAPCOLS は「縦に詰めてから右へ」、WRAPROWS は「横に詰めてから下へ」と動く、と覚えると迷いません。

どちらを使うべきか:実務シナリオ別

  • WRAPCOLSが向く例: 月次12件を四半期別(3行4列)に並べる、従業員名簿を部署ごとに列で分ける、商品コードをカタログ形式の縦リスト×複数列にする
  • WRAPROWSが向く例: 週次7日データを4週分の4行7列に整形する、横長のログを指定件数ごとの行に折り返す

「最終的に縦長にしたいか、横長にしたいか」を先にイメージすると選びやすいです。

実務ユースケース:こんな場面で使える

月次レポートデータを月別列に整形

月次KPIを「Q1・Q2・Q3・Q4」の4列にまとめたいときは、次のように書きます。

=WRAPCOLS(A1:A12, 3, "")

四半期ごとのレビュー資料や、横並びで比較したい分析シートの下準備に使えます。

商品カタログを列グループに分けて表示

商品コードが50件、A1:A50 に縦に並んでいるとします。10行×5列のカタログ形式にしたいときは次のとおりです。

=WRAPCOLS(A1:A50, 10)

50は10で割り切れるので端数は出ません。割り切れない件数(例:52件)の場合は pad_with="" を指定して空白で埋めるときれいです。

TOCOLと組み合わせて2次元→1列→複数列に変換

WRAPCOLS は1次元配列しか受け付けませんが、前処理に TOCOL関数 を挟めば2次元範囲も扱えます。たとえば A1:C10(10行×3列)の30件を、5行6列に並べ替えたいとき。

=WRAPCOLS(TOCOL(A1:C10), 5)

TOCOL でまず縦1列の30件に直し、それを WRAPCOLS で5行ごとに折り返します。転置して処理したい場合は TRANSPOSE関数 との合わせ技も有効です。複数表の結合が絡む場合は VSTACK関数HSTACK関数 も選択肢に入ります。

よくあるエラーと対処法

#N/Aエラー:端数が出た場合

原因は pad_with を省略したまま、折り返し時に端数が発生したケースです。第3引数に "" や任意の値を指定するだけで解消します。

// NG: 10件をwrap_count=3で折り返すと #N/A が残る
=WRAPCOLS(A1:A10, 3)

// OK: 空文字で埋めて見た目をきれいに
=WRAPCOLS(A1:A10, 3, "")

#VALUE!エラー:引数が1次元でない場合

WRAPCOLS の第1引数は1行または1列の1次元配列のみ受け付けます。A1:C10 のような2次元範囲を渡すと #VALUE! になります。TOCOL で1列化してから渡すか、範囲を1列または1行に絞り直してください。

#NUM!エラー:折り返しの値が0以下

wrap_count0 や負の数を指定するとこのエラーになります。1以上の整数を指定してください。小数は自動で切り捨てられます。

Excelファイルとの互換性

WRAPCOLS はMicrosoft 365およびExcel 2024以降で利用できます。Excel 2021以前で作成されたファイルをスプレッドシートで開いた場合、WRAPCOLS 式はそのまま動作します。逆に、WRAPCOLS 式を含むファイルをExcel 2021以前で開くと計算できないため注意してください。ExcelとGoogleスプレッドシートの挙動比較は ExcelのWRAPCOLS関数の使い方 の記事も参考になります。

まとめ

WRAPCOLS 関数は、縦1列のデータを「1列あたり何行」で折り返すかを指定して、複数列のレイアウトに整形する関数です。押さえておきたいポイントをおさらいします。

  • 構文は =WRAPCOLS(範囲, 折り返しの値, [代替文字])
  • 第1引数は1次元配列のみ。2次元は TOCOL などで先に1列化する
  • 第2引数は「列数」ではなく「1列あたりの行数」
  • 第3引数 pad_with は基本 "" を指定しておくと端数トラブルを防げる
  • 折り返し方向を変えたいときは WRAPROWS を使う

月次データの四半期別整形、週次データの週別整形、商品カタログの列分割など、手作業コピペが発生しがちな場面で大きな時短効果があります。TOCOLTOROWTRANSPOSEVSTACK などの配列操作関数と組み合わせると整形パターンの幅が一気に広がります。ぜひセットで使いこなしていきましょう。

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