第2第4日曜日を求める技② - Vol.47 -
11月 26, 2018
スゴ技会計士からの挑戦状 VOL.47
┃第2第4日曜日を求める技②
【問題】難易度★★★★
2019年の第2第4日曜日の一覧を作成してください。

【ヒント】
前回はROW関数で日付を作成した後、TEXT関数を使って「年月曜日」のフラグを作成しました。
これを使って各曜日が月内で何週目に該当するかのフラグをたてることができるでしょうか。フラグをよく観察してください。

【解答例】
<月内週番号>
各曜日が月内で何週目に該当するかのフラグをたてるには、COUNTIF関数を使います。
原理は重複チェックと同じです。
範囲の中に自分と同じセルがいくつあるかを数えます。

<第2第4日曜日の判定>
第2第4日曜日の判定は「TRUE」「FALSE」でシンプルに行いましょう。
IF関数を使う必要はありません。
分かりにくければ、「第2第4の判定」と「日曜日の判定」は別のセルで行ってもよいと思います。

<ユニークキー>
関数を使って第2第4日曜日だけを表示させるために、「TRUE」の行だけユニークキーを割り当てます。
「TRUE」の行に上から連番を割り当てるとユニークキーを作ることができます。
ここでもCOUNTIF関数を使います。
「FALSE」の行はゼロになるように、「TRUE」「FALSE」をCOUNTIFの結果に掛け算しています。
ここは分かりにくければIF関数を使ってもよいと思います。

<VLOOKUP関数で表示>
ユニークキーを使った参照はなるべくVLOOKUP関数を使いましょう。
MATCH関数とINDEX関数やOFFSET関数を組み合わせて使う方法もありますが、たいてい可読性が低くなります。
VLOOKUP関数は制約が多い関数ですが、その分あとから見ても分かりやすいです。
多少回り道をしても可読性を優先させた方が、あとでメンテナンスがしやすく、他の人にも引き継ぎしやすくなります。
今回の問題が解けるような上級者は、エクセル初心者にも引き継ぎできるようなシート作成を心がけてください。
