企業により決算時期が異なるため、2017-07-01から2018-06-30までを2017年度のように特定の日付範囲で年度を区切ることで業績をみたいことがあります。
そういった場合には、case_when
という条件によって異なる結果を返すことができる関数と
between
という範囲を指定できる関数を組み合わせることで解決できます。
今回は、"2017-07-01"から"2018-06-30"までを2017年度、"2018-07-01"から"2019-06-30"までを2018年度としたいとします。
まず始めステップメニューから計算を作成を開きます。
次に、ダイアログが開くので、新しく列を作成にチェックをします。
列名はご自由にお選びください。
計算エディタには、下記のコードを入力します。
date
となっている所には、現在お使いの日付型のデータの列名を指定してください。
case_when(
between(date, as.Date("2017-07-01"), as.Date("2018-06-30")) ~ "2017年度",
between(date, as.Date("2018-07-01"), as.Date("2019-06-30")) ~ "2018年度",
TRUE ~ "Other")
これにより、指定した日付から年度を生成できたかと思います。
このコードの説明をしますと、
case_when
は指定した条件に合致すると、条件が満たされた時の値を返してくれる関数です。
条件1 ~ 条件1が満たされたときの値,
条件2 ~ 条件2が満たされたときの値,
...
TRUE ~ どちらでもないときの値
次に、between
は範囲を指定することができ、指定した範囲と一致する場合は、TRUEをそうでない場合はFALSEを返します。
引数は3つありまして、下記のようになっています。
between(範囲を指定したい列名, 最初の指定日、最後の指定日)
今回は日付型で使用していますが、数値型でも使うことができます。
次に、as.Date
ですがこちらの関数は日付型に変換処理するための関数となります。
between
の中で指定した "2017-07-01"といった値はcharacter型のため、Date型に変換しなければ期間の情報を与えることができないためです。
今回のように、case_when
とbetween
を合わせることで、指定した範囲ならば2017年度といった形で返すことができます。
ぜひお試しください!