EXCELの関数で問題解決

[EXCEL]数日サイクルのスケジュールを表示する方法

週は7日と半端な数であり、暦のサイクル中心では「2日おき」や「3日おき」などのスケジュールを管理することができません。

代表的な例が「トレーニングメニュー」です。特に筋トレは同じ部位を毎日続けるより、2日おきか3日おきのほうが効果的と言われています。「何曜日はスクワットの日」と決められたら良いのですが、週は7日なので2でも3でも割り切れず、毎度曜日がずれることになります。

MOD関数は割り算の余りを返す関数ですが、うまく使えば「何日ごと」や「何回に1回」などの周期を算出することができます。

さらに IFS関数 と組み合わせて、たとえば3日ごとなら IFS(1日め,2日め,3日め) とすることで、当日を何日目なのかを判断して3種類の表示を切り替えることが可能です。

カレンダーに3日ごとのトレーニングメニュー「スクワット」「ベンチプレス」「エアロバイク」を書き込む例で解説いたします。

使う関数

MOD(数値,除数)

数値を除算した余りを返します。

IFS(論理式,値が真の場合,…)

1つ以上の条件が満たされるかどうかを確認し、真の場合の値を返します。IF関数は1つの条件ですが、IFSは([条件1,値],[条件2,値]…)と複数の条件に対応します。

3日ごとのトレーニングメニュー表示

①カレンダーに3日サイクルのトレーニングメニュー「スクワット」「ベンチプレス」「エアロバイク」を表示させることにします。

MOD関数の役目を確認

②セルB2へ「=MOD(A2,3)」と入力すると、3で割った余りなので結果は 0 か 1 か 2 のいづれかになります。

③日付を計算すると、結果の表示形式も日付になってしまうため「標準」に戻します。

MODとIFSを組み合わせる

④セルB2へ「=IFS(MOD(A2,3)=2,”スクワット”,MOD(A2,3)=0,”ベンチプレス”,MOD(A2,3)=1,”エアロバイク”)」と入力します。

もし余り=2ならスクワット、余り=0ならベンチプレス、余り=1ならエアロバイク、という意味です。

⑤下のセルへコピーすると、3日ごとのトレーニングメニューが表示されました。

条件付き書式で色分け

①塗りつぶし対象セル範囲を選択します。

②「ホーム」タブ内「条件付き書式」「新しいルール(N)」をクリックします。

③数式窓に「=$B2=”スクワット”」2の前に$を付けない相対参照です。

④数式窓に「=$B2=”ベンチプレス”」2の前に$を付けない相対参照です。

⑤数式窓に「=$B2=”エアロバイク”」2の前に$を付けない相対参照です。

スケジュール完成