日経PC21

FILTERで抜き出して、TEXTJOINで連結

次に、結果の動的配列を連結した文字列を作る。それにはTEXTJOIN関数が便利で、区切りの文字列を指定して動的配列を連結できる(図6)。

図6 TEXTJOIN関数を使って図5の動的配列(赤字部分)を連結する。ここでは区切りの文字列を「", "」とした

うまくいったら、日付の部分を縦1列のカレンダーに作り替え、図6のTEXTJOIN関数式を下にコピーしてみよう(図7)。それぞれの日付の「やること」がずらりと並ぶはずだ。これがカレンダー形式変換の基本形になる。

図7 日付の部分を縦1列のカレンダーに変え、右隣のFILTER関数式を下にコピーしてみよう。各日付の「やること」が表示される。なお、ToDoリストは必ずしも日付の順で並んでいなくてもよい

月間カレンダーはこの応用だ。図1ではA1セルに入れた年とB1セルに入れた月の数字から自動的に当該月のカレンダーが表示されるようにしてある。カレンダー自体の作り方も含めた数式は図8の通りだ。A2~G2セルの曜日は手入力する。

図8 月間カレンダーも同様。3、5、7、9、11行目に日付データを並べ、その日の「やること」を抜き出す数式を入力する。ここではTEXTJOIN関数の区切り文字列をセル内改行の「CHAR(10)」とした(赤字部分)。月間カレンダーを作る際はDATE関数で当該月の初日を求め(C1セル)、さらにWEEKDAY関数で第1週の日曜日を計算するのがポイントだ(A3セル)。なお、A4セルのTEXTJOIN関数式を右へオートフィルすると数式がおかしくなるので注意。「コピー」と「貼り付け」でコピーする

図8のように表示できたら、仕上げに3、5、7、9、11行目の日付を、日の数字のみの表示に変えよう。それにはセルを選択して右クリックし、「セルの書式設定」を選択。「表示形式」タブの「分類」欄で「ユーザー定義」を選んで、右側に現れる「種類」欄に「d」と入力して「OK」を押せばよい。さらに罫線などの書式を整えると、図1の月間カレンダーになる。

(日経PC21 服部雅幸)

[日経PC21 2022年8月号掲載記事を再構成]