行または列で折り返す配列を作成するWRAPROWS関数・WRAPCOLS関数の使い方:Excel関数


スポンサードリンク

作成:2022/9/2,更新更新:2023/3/12

1行を折り返して配列にする
 ラップ ロウズ
=WRAPROWS(vector,wrap_count,[pad_with])

1列を折り返して配列にする
 ラップ コール(カラム)
=WRAPCOLS(vector,wrap_count,[pad_with])

WRAPROWS関数・WRAPCOLS関数がExcel for Microsoft 365 で使用することができるようになりました。(2022/9/2に確認しました)

WRAPROWS関数・WRAPCOLS関数の引数

関数の引数は現時点では英語表記になっています。

WRAPROWS関数・WRAPCOLS関数の引数
引数 意味
vector
ベクトル
必須 折り返すベクトルまたは参照
wrap_count
折り返す列・行数
必須 各行(各列)の値の最大数
pad_with
代替文字
省略可 各行の横方向のデータ不足時に表示する値

WRAPROWS関数・WRAPCOLS関数の使用例

B1セルに =SEQUENCE(1,10,1001,10) と入力して1001から増分10の数値10個の配列を生成しています。
B3セルに =WRAPROWS(B1#,3) と3列で配列を折り返して表示しています。
G3セルには =WRAPCOLS(B1#,3) と3行で配列を折り返して表示しています。
データが不足しているセルには #N/A エラーが表示されています。

#はスピル範囲演算子と呼ばれる演算子です。
B1# は=SEQUENCE(1,10,1001,10)で生成されるスピル範囲全体を参照することができます。
ここではB1:K1と同じですが、スピルではこの範囲が変動しますので、B1から始まるスピルで返される範囲を指定できます。

エラー #N/A を "-"(ハイフン)に置き換えたいときは、引数pad_withに”-”と指定します。
=WRAPROWS(B1#,3,"-")
=WRAPCOLS(B1#,3,"-") とします。

1カ月のカレンダーを作成した例

実際の使用例がなかなか思い浮かばなくて、苦し紛れで・・・カレンダーを作成してみました。
B3セルには作成したい月の1日の日付を入力します。
B5セルには 
=WRAPROWS(
SEQUENCE(1,DAY(EOMONTH(B3,0))+ABS(1-WEEKDAY(B3,1)),
B3+(1-WEEKDAY(B3,1)),1),
7,"")
といった数式を入力しています。
カレンダーの最初の日曜日を計算して、SEQUENCE関数でその月の最終日までの配列を生成しています。
この配列をWRAPROWS関数で7列に配置しています。

なお、前月を見えなくするために、ちょっと小細工をしています。
あらかじめ日付のセルのフォントの色を白くして見えなくします。
条件付き書式でその月の日付はフォントの色を黒にしています。

125日分のカレンダーを作成した例

コロナの感染者数の感染者数(鹿児島県)を条件付き書式のデータバーで表現してみました。
感染者データは テーブル名「コロナ」にして、テーブルの4列目が コロナの感染者の発表数です。
感染者のデータはNHKが公開しているデータから鹿児島県分を(2022/9/27まで)書き出して使用しました。
https://www3.nhk.or.jp/n-data/opendata/coronavirus/nhk_news_covid19_prefectures_daily_data.csv

=WRAPROWS(SEQUENCE(1,125,C3+(1-WEEKDAY(C3,1)),1),7,"") とC3セルの日付から125日分を 日〜土のカレンダーで表現し、横に感染者数データを
=IFERROR(VLOOKUP(C5:I5,コロナ,4,0),"") で引っ張って来ています。
XLOOKUP関数を使うと、=IFERROR(XLOOKUP(C5:I5,コロナ[日付],コロナ[発表数]),"") といった感じです。

この2つの表を合成したいと思いましが、良い方法を考えつかなかったので、図のコピーでごまかすことにしました。
下図のようにそれぞれ各セルの高さを倍にして、値の表示をセルの上詰めと下詰めにしています。


各表をそれぞれコピーして図として貼り付けます。
それを重ね合わせると下図のようなものが作成できます。
見やすくなったと思いませんか?

スポンサードリンク



よねさんのWordとExcelの小部屋 »  エクセル関数一覧表 »  WRAPROWS関数・WRAPCOLS関数の使い方

PageViewCounter
Counter
Since2006/2/27