こちらで、IFS 関数の紹介をしており、その際にも四半期を求める方法を記載したのですが、今回は同じことを CHOOSE 関数と SWITCH 関数でやってみました。

CHOOSE 関数や SWITCH関数の基本的なお話は、過去の記事にあるので参照してください。

CHOOSE 関数を使って四半期を求める

今回は 4 月~ 6 月を第 1 四半期とし、翌年の 1 月 ~ 3 月を第 4 四半期とすることを例にします。
自分が区切りたい四半期が異なる場合は・・・自分で引数を考えてください。

A 列の日付をもとに、該当する四半期を D 列に表示したい (表示している) 図です。


B 列には、MONTH 関数を使って A 列の日付の “月” (何月か) を表示しています。


C 列に、CHOOSE 関数を使って B 列の “月” に対して、どのような値を返したいのかを求めています。
値1 から 値3 が「4,4,4」ということはつまり、1 (月) ~ 3 (月) なら「4」 (第4四半期) ということです。

値4 から 値6 が「1,1,1」なので4月から6月が第1四半期、値7 から 値 9 が「2,2,2」、値10 から 値12 が「3,3,3」として、それぞれ対応する値を指定しています。




D 列には、C 列の四半期の数字の前後に結合したい文字列を「&」でつないだ数式を作成しています。


B 列や C 列のような作業セルを使わずに、関数をネストして 1 つの数式で行った場合はこんな感じ↓。
(数式を読んで意味が分からないのなら、無理せず作業セルを使ってください。) 


もちろん、こんな感じで↓

=CHOOSE(B3,"第4四半期","第4四半期","第4四半期","第1四半期","第1四半期","第1四半期","第2四半期","第2四半期","第2四半期","第3四半期","第3四半期","第3四半期")

インデックス (月) に対応する四半期を順番に書いてもよいのですが、数式が長くて作りにくいうえに分かりにくいので、普段私はやりません。

SWITCH 関数を使って四半期を求める

CHOOSE 関数と同じく、4 月~ 6 月を第 1 四半期とし、翌年の 1 月 ~ 3 月を第 4 四半期とすることを例にします。

B 列には、MONTH 関数を使って A 列の日付の “月” (何月か) を表示しています。


C 列に、SWITCH 関数を使って B 列の “月” に対して、どのような値を返したいのかを求めています。
値1 から 値12 まで、ただひたすらに、月 (値) と四半期 (結果) の組み合わせを指定しています。




D 列には、C 列の四半期の数字の前後に結合したい文字列を「&」でつないだ数式を作成しています。


B 列や C 列のような作業セルを使わずに、関数をネストして 1 つの数式で行った場合はこんな感じ↓。
(数式を読んで意味が分からないのなら、無理せず作業セルを使ってください。)


IFS や CHOOSE との比較のために SWITCH 関数での対応も書いたのですが・・・自分ではこれはやらないな (笑)
SWITCH でやる理由がないというか、CHOOSE または IFS でスマートに対応できるうえに、日付さえきちんと入力されていれば、該当する値がない っていうことがほぼ考えられないため、SWITCH 関数の良さがでないですね。

しいて言うなら、CHOOSE と違って、年度の始まり (今回の場合は 4 月) をスタートとして、値と結果 (月が 4 なら 1 を返す など) を自由な順序で指定できるのでわかりやすいっちゃあわかりやすいですかね。

絶対にどれでやらなければならない、ということではないので、自分や一緒にお仕事をする方がわかりやすいものをチョイスしてください。
1 つのことをいろいろな関数で試してみると違いがわかってよいお勉強になると思います。

石田 かのこ