エクセル入門
WRAPROWS関数(1次元配列を指定数の行で折り返す)

Excelの初心者向け入門解説
公開日:2022-11-08 最終更新日:2022-11-10

WRAPROWS関数(1次元配列を指定数の行で折り返す)


WRAPROWS関数はOffice365のExcelに2022年になってから追加された新しい関数です。


WRAPROWS関数は、1次元配列(1列または1行)を指定された数で各行を折り返して新しい配列を作成します。
行で折り返した結果、配列の最終行の要素が不足している場合は指定の文字で埋められます。
行での折り返しではなく、列で折り返す場合はWRAPCOLS関数を使用します。
WRAPCOLS関数は、1次元配列(1列または1行)を指定された数で各列を折り返して新しい配列を作成します。列で折り返した結果、配列の最終列の要素が不足している場合は指定の文字で埋められます。列での折り返しではなく、行で折り返す場合はWRAPROWS関数を使用します。


WRAPROWS関数の構文

=WRAPROWS(vector, wrap_count, [pad_with])

vector
1列/1行
セル範囲(縦1列または横1行)もしくは1次元配列を指定します。
必須です。
wrap_count
折り返し数
各行の値の最大数。
この数値で各行が折り返されます。
必須です。
pad_with
埋め込む値
不足部分に埋め込む値。
既定値は #N/A です。

vectorに、複数行複数列のセル範囲 または 2次元配列を指定した場合は #VALUE エラーになります。
つまり、縦1列または横1行のセル範囲 または 1次元配列しか指定できません。

wrap_countがvectorの要素数(1行なら列数、1列なら行数)以上の場合は単一行(1行のみ)で返されます。
wrap_countが1未満の場合は N/A エラーになります。

行で折り返した結果、最終行の要素が不足している場合はpad_with(省略時は#N/A)で埋められます。


WRAPROWS関数の使用例と解説

縦1列のセル範囲を各行4列で折り返す。埋め文字は省略。

=WRAPROWS(A1:A10,4)
Excel エクセル WRAPROWS関数 新関数

WRAPROWS関数はセル範囲A1:A10を受け取り、
引数「wrap_count」に指定された 4 で各行(横)を折り返した配列を返します。
最後の2要素は不足部分になりますので、既定値の #N/A で埋められます。

上記ではセル範囲を指定していますが配列でも同様です。
=WRAPROWS(SEQUENCE(10),4)
Excel エクセル WRAPROWS関数 新関数

A1:A10は、「=SEQUENCE(10)」をセル出力した場合の結果です。

横1行のセル範囲を各行4列で折り返す。埋め文字は"***"。

=WRAPROWS(A1:J1,4,"***")
Excel エクセル WRAPROWS関数 新関数

WRAPROWS関数はセル範囲A1:J1を受け取り、
引数「wrap_count」に指定された 4 で各行(横)を折り返した配列を返します。
最後の2要素は不足部分になりますので、指定値の"***"で埋められます。

複数行複数列のセル範囲 または 2次元配列を指定した場合は #VALUE エラー

=WRAPROWS(A1:B5,3)
Excel エクセル WRAPROWS関数 新関数

複数行複数列のセル範囲 または 2次元配列を指定した場合は #VALUE エラー
上記では、A1:B5の範囲を指定しているので #VALUE! エラーとなっています。

このような縦横複数のセル範囲 または 2次元配列の場合は、TOCOL関数またはTOROW関数で1次元配列に変換してからWRAPCOLS関数を使います。
=WRAPROWS(TOROW(A1:B5),4)
Excel エクセル WRAPROWS関数 新関数

WRAPROWS関数の実践例:日付毎のデータを曜日で折り返す。

=LET(
前月,EXPAND("",WEEKDAY(A2,2),,""),
WRAPROWS(
        DROP(VSTACK(前月,B2:B32),1),
        7,""))
Excel エクセル WRAPROWS関数 新関数

※この数式では日付に抜けがなく連続していることを前提としています。

7曜で折り返すだけであれば、引数「wrap_count」に7を指定すれば済みます。
この例では、日付を曜日の位置に合わせる必要があり、そこが面倒な処理になり数式が難解なものになっています。

前月,EXPAND("",WEEKDAY(A2,2),,""),
EXPAND関数で先頭日付曜日から前月分の空白(1~7の曜日コード分)を作成しています。
EXPAND関数は、配列(またはセル範囲)を指定された行と列のサイズに拡張した配列を返します。配列の拡張される部分は埋め込む値を指定できます。EXPAND関数の構文 =Expand(配列,行,[列],[pad_with]) 引数「行」または「列」の値が、引数「配列」の行数または列数より小さい場合は#VALUE!エラ…

この空白配列と入力の配列をVSTACK関数で縦に結合します。
・VSTACK関数の構文 ・VSTACKの基本動作 ・VSTACK関数の使用例と解説
DROP(VSTACK(前月,B2:B32),1),
月曜開始でも1つ分の空白が追加されるのでDROP関数で先頭を除外します。
DROP関数は、配列(またはセル範囲)の先頭または末尾から、指定した行数または列数を除外した配列(またはセル範囲)を返します。指定部分を除外するのではなく、指定部分を取得する場合はTAKE関数を使用します。DROP関数の構文 =DROP(配列,列,[行]) 引数「行」は必須になりますので、値を指定しなくても,

最後にWRAPROWS関数で折り返して完成です。


LAMBDA以降の新関数の問題集 ・・・ 解答は別ページになっています。

・目次 ・LAMBDA踊るぞ編 ・LAMBDA踊るぞ編2 ・SCAN編 ・MAP編 ・REDUCE編 ・山手線営業の旅編 ・BYROW,BYCOL編 ・ここからはフリー問題だよ編 ・好きな関数を使ってくれ編 ・いろんな関数を使ってね編 ・魔球編 ・豚が木に登れば落ちることもある編 ・たまには100点とってみたいものだ編 ・これは何と言う処理なんだろ編 ・数字は嫌いなのだ編 ・外堀から埋めていくぞ編 ・なぜわざわざそうしたいのか編 ・かっこつけてんじゃないよ編 ・頭の体操だけど新関数の出番はあるか?編 ・定番だけど出してなかったよね編
LAMBDA以降の新関数の使用例
・2つの1次元配列から、それをクロス結合した結果を返す ・A列が同じ行のB列の値を連結して、A列の一意な値とともに出力 ・名前定義を使わずにLAMBDA関数で再帰する方法 ・文字列を大文字小文字変換して大小文字の全組み合わせを出力 ・2つのテーブルの片方しかない行を縦に連結出力 ・3連単、3連複のフォーメーション買目を全て列挙する ・FILTER関数の出力行数・列数を指定する ・月が縦で日が横の表を、曜日(7列)で縦に折り返す ・文字列内の括弧()()の中の文字を取り出して列挙 ・表内にあるセル内改行を複数行に展開 ・文字列の中から1文字削除の全パターン出力 ・クロスABC分析 ・月利が毎月変動する月複利の計算 ・レーベンシュタイン距離 ・文字列を数字と数字以外で分割 ・縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS) ・直積(クロス結合、…




同じテーマ「エクセル入門」の記事

DROP関数(配列の先頭/末尾から指定行/列数を除外)

DROP関数は、配列(またはセル範囲)の先頭または末尾から、指定した行数または列数を除外した配列(またはセル範囲)を返します。指定部分を除外するのではなく、指定部分を取得する場合はTAKE関数を使用します。DROP関数の構文 =DROP(配列,列,[行]) 引数「行」は必須になりますので、値を指定しなくても,
TAKE関数(配列の先頭/末尾から指定行/列数を取得)
TAKE関数は、配列(またはセル範囲)の先頭または末尾から、連続した指定の行数または列数の配列(またはセル範囲)を返します。指定部分を取得するのではなく、指定部分を除外する場合はDROP関数を使用します。TAKE関数の構文 =TAKE(配列,列,[行]) 引数「行」は必須になりますので、値を指定しなくても,
EXPAND関数(配列を指定された行と列に拡張する)
EXPAND関数は、配列(またはセル範囲)を指定された行と列のサイズに拡張した配列を返します。配列の拡張される部分は埋め込む値を指定できます。EXPAND関数の構文 =Expand(配列,行,[列],[pad_with]) 引数「行」または「列」の値が、引数「配列」の行数または列数より小さい場合は#VALUE!エラ…
WRAPROWS関数(1次元配列を指定数の行で折り返す)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)
WRAPCOLS関数は、1次元配列(1列または1行)を指定された数で各列を折り返して新しい配列を作成します。列で折り返した結果、配列の最終列の要素が不足している場合は指定の文字で埋められます。列での折り返しではなく、行で折り返す場合はWRAPROWS関数を使用します。
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)
TEXTSPLIT関数は、列の区切り記号と行の区切り記号を使用して文字列を分割します。列の区切り(横に分割)を使った場合は「データ」タブの「区切り位置」と同じような処理ができる関数です。さらに、列(横)への分割だけではなく行(縦)に分割することもできます。
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)
TEXTBEFORE関数は、テキスト文字列から指定した区切り文字列の前に出現するテキストを返します。区切り文字列の前ではなく後ろを取得する場合はTEXTAFTER関数を使用します。TEXTBEFORE関数の構文 =TEXTBEFORE(text,delimiter,[instance_num],[match_mod…
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)
TEXTAFTER関数は、テキスト文字列から指定した区切り文字列の後ろに出現するテキストを返します。区切り文字列の後ろではなく前を取得する場合はTEXTBEFORE関数を使用します。TEXTAFTER関数の構文 =TEXTAFTER(text,delimiter,[instance_num],[match_mode…
LAMBDA以降の新関数の使用例
・2つの1次元配列から、それをクロス結合した結果を返す ・A列が同じ行のB列の値を連結して、A列の一意な値とともに出力 ・名前定義を使わずにLAMBDA関数で再帰する方法 ・文字列を大文字小文字変換して大小文字の全組み合わせを出力 ・2つのテーブルの片方しかない行を縦に連結出力 ・3連単、3連複のフォーメーション買目を全て列挙する ・FILTER関数の出力行数・列数を指定する ・月が縦で日が横の表を、曜日(7列)で縦に折り返す ・文字列内の括弧()()の中の文字を取り出して列挙 ・表内にあるセル内改行を複数行に展開 ・文字列の中から1文字削除の全パターン出力 ・クロスABC分析 ・月利が毎月変動する月複利の計算 ・レーベンシュタイン距離 ・文字列を数字と数字以外で分割 ・縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS) ・直積(クロス結合、…
縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS)
・出題のツイート ・解答ツイート ・INDEX+MATCH ・FILTER+MATCH ・CHOOSEROWS+MATCH ・無理矢理XLOOKUPを使ってみたら… ・総評
直積(クロス結合、交差結合)とピボット解除
LAMBDA以降の新関数の練習問題をツイッターで出題しています。今回は、直積(クロス結合、交差結合)の作成とピボット解除についての2問です。LAMBDA以降の新関数について LAMBDA以降の新関数の使用例・2つの1次元配列から、それをクロス結合した結果を返す・A列が同じ行のB列の値を連結して、A列の一意な値ととも…


新着記事NEW ・・・新着記事一覧を見る

ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ