スポンサードリンク | |
作成:2022/9/2,更新:2023/3/12
WRAPROWS関数・WRAPCOLS関数がExcel for Microsoft 365 で使用することができるようになりました。(2022/9/2に確認しました)
関数の引数は現時点では英語表記になっています。
引数 | 意味 | |
vector ベクトル |
必須 | 折り返すベクトルまたは参照 |
wrap_count 折り返す列・行数 |
必須 | 各行(各列)の値の最大数 |
pad_with 代替文字 |
省略可 | 各行の横方向のデータ不足時に表示する値 |
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,"-") とします。
実際の使用例がなかなか思い浮かばなくて、苦し紛れで・・・カレンダーを作成してみました。
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列に配置しています。
なお、前月を見えなくするために、ちょっと小細工をしています。
あらかじめ日付のセルのフォントの色を白くして見えなくします。
条件付き書式でその月の日付はフォントの色を黒にしています。
コロナの感染者数の感染者数(鹿児島県)を条件付き書式のデータバーで表現してみました。
感染者データは テーブル名「コロナ」にして、テーブルの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つの表を合成したいと思いましが、良い方法を考えつかなかったので、図のコピーでごまかすことにしました。
下図のようにそれぞれ各セルの高さを倍にして、値の表示をセルの上詰めと下詰めにしています。
↓
各表をそれぞれコピーして図として貼り付けます。
それを重ね合わせると下図のようなものが作成できます。
見やすくなったと思いませんか?
スポンサードリンク
PageViewCounter
Since2006/2/27