いまさら聞けないExcelの使い方講座

【Excel】毎週同じ曜日にあるイベントは予定表に自動表示させたい!エクセルのIF関数とWEEKDAY関数を組み合わせたテク

毎週同じ曜日にある予定をスケジュール表に自動で表示させたい!

 Excelはスケジュール表の作成にとても便利ですよね。これまで本連載では、スケジュール表の作成に役立つテクニックをいろいろ解説してきました。日付の入力や書式設定にはだいぶ慣れてきたという読者も少なくないのではないでしょうか?

 ところで、定例会議やゴミの収集などは、たいてい毎週同じ曜日に行われるのではないでしょうか。このような、特定の曜日に繰り返される前もって決まった予定を、Excelで作った予定表に自動で入力したい……と思ったことはありませんか。スケジュール表に日付を入力した後に、毎回予定のある曜日の日付を探して予定を入力するのは面倒ですね。

 今回は、Excel関数を活用して、毎週同じ曜日に入っている予定がスケジュール表に自動で入力されるようにするテクニックを解説します。

IF関数とWEEKDAY関数を組み合わせて同じ曜日に繰り返される予定を表示させる

 Excelで作る2018年9月の総務課予定表で、毎週水曜日の「課内の予定」欄(①)に「総務課ミーティング」の予定を自動で表示させる例を考えてみましょう。

 さっそく数式を作っていきますが、関数に対して苦手意識を持っている読者もいらっしゃるかもしれませんね。最初から数式を書くことを考えず、「どのように考えれば思ったように予定を表示させられるか」を考えてみましょう。

 ここでやりたいことは、「毎週水曜日の課内の予定欄に『総務課ミーティング』と表示させること」です。つまり、「課内の予定」欄のセルを基準に考えると、「左隣のセルに入力された日付が水曜日の時は、セルに『総務課ミーティング』と表示する。左隣のセルの日付が水曜日以外の時は、何も表示しない」とすれば良さそうです。

 ここまで考えることができれば、あとはこの考えを数式の形に翻訳すればいいだけです。以前の記事で土日の日付に色を付けて表示したい時に使ったWEEKDAY関数を、ここでも使います。また、今回の例では、「水曜日以外の場合は何も表示しない」というように、条件によって表示する内容を変える必要があります。このように、条件によって処理を変える必要がある時には、IF関数を使います。IF関数の書式は、「=IF(論理式,値が真の場合,値が偽の場合)」です。この書式の意味については、このあと実際に数式を入力しながら解説していきます。

 ではさっそく、数式を入力してみましょう。今回の例のように複雑な数式を作る時、セルに直接数式を入力していくと途中で混乱してしまうことがあるので、ここでは別の方法を使ってみます。数式を入力したいセル(ここではセルB3)(②)をクリックして、[数式]タブ(③)→[関数の挿入](④)をクリックします。

 [関数の挿入]ダイアログボックスが表示されます。[関数名]欄で[IF](⑤)を選択し、[OK](⑥)をクリックします。

 既定では[関数の分類]欄が[最近使った関数]になっており、[関数名]に表示される関数名の順序や内容は、これまでに使った関数の種類をもとに表示されます。もし[関数名]にIFが表示されない場合は、ダイアログボックス上部の[関数の検索]に「IF」と入力して右側の[検索開始]をクリックすれば、[関数名]にIFが表示されます。

 [関数の引数]ダイアログボックスが表示されます。このダイアログボックスはとても便利で、ダイアログボックスに表示される説明を確認しながら、引数となる数式や値を入力していくと、複雑な数式でも迷わずに作成できます。ここでは上から順に、[論理式]に「WEEKDAY(A3)=4」(⑦)、[値が真の場合]に「"総務課ミーティング"」(⑧)、[値が偽の場合]に「""」(⑨)と入力して[OK](⑩)をクリックします。

 [論理式]の欄には、IF関数で結果を分けるための条件となる式を入力します。ここで入力した「WEEKDAY(A3)=4」という数式は、「セルA3に入力された日付が水曜日である時」という意味です。WEEKDAY関数では曜日を数字として表します。曜日に対応する数字についての詳細は以前の記事を参照してください。[値が真の場合]の欄は、条件を満たす時にどうしたいかを入力するものです。ここでは「総務課ミーティング」という文字列を表示させたいので、表示させたい文字列を「"」(半角のダブルクオーテーション)で囲んでいます。[値が偽の場合]の欄には、条件を満たさない時にどうしたいかを入力します。ここでは何も表示させたくないので、「""」としています。ダブルクオーテーションの間に何も入っていないので、結果としてセルには何も表示されないということになります。

 表示がシートに戻り、数式バーに「=IF(WEEKDAY(A3)=4,"総務課ミーティング","")」(⑪)と表示されます。セルB3に自動で数式が入力されたことがわかります。この数式を1か月分コピーしてみましょう。セルB3の右下にマウスポインターを合わせると、マウスポインターが十字の形(⑫)に変わります。

 セルB32までドラッグ(⑬)して、数式をコピーします。

 数式がコピーされ、水曜日の課内の予定欄に自動で「総務課ミーティング」と表示されます(⑭)。画面上ではセルB21とセルB28しか見えませんが、9月前半の水曜日についても、同様に予定が表示されています。

 こんな数式を入力するくらいなら、毎月手入力した方が早いのでは……と思った方もいるかもしれませんね。でも、一度この数式を作成しておけば、予定表のブックをコピーして次の月に再利用した時、B列の数式を誤って削除したりしない限り、A列の日付を次の月のものに変えるだけで、再び自動で水曜日の「総務課ミーティング」が予定欄に表示されるのです。翌月以降、予定の入力の手間が省けると思うと、ずいぶん仕事が効率化されると思いませんか。

2つ以上の条件を設定する場合はIF関数の中にIF関数を入れる

 ところで、今回の総務課予定表の例で、水曜日の総務課ミーティングに加え、金曜日に「ゴミ袋の発注」の予定を表示させたい場合はどうしたらよいでしょうか。このような場合は、IF関数を使った数式の中でさらにIF関数を使って条件を設定することで、2つの予定を表示することができます。

 今回の例では、セルB3に「=IF(WEEKDAY(A3)=4,"総務課ミーティング",IF(WEEKDAY(A3)=6,"ゴミ袋の発注",""))」(①)と入力して、先ほどと同様にセルB32まで数式をコピーすると、水曜日の予定欄に「総務課ミーティング」(②)、金曜日の予定欄に「ゴミ袋の発注」(③)と表示されます。

 IF関数の書式に含まれる3つの項のうち最後の「値が偽の場合」に当たる部分が、水曜日だけに予定がある場合は「""」(何も表示しない)だったのに対し、金曜日にも予定がある場合は「IF(WEEKDAY(A3)=6,"ゴミ袋の発注“,"")」となっています。このようにして条件を追加すれば、表示される結果をさらに増やすことができるのです。今回の記事で作成した数式のように関数の中で関数を使うことを、関数のネストといいます。

曜日固定の予定は関数を使った自動入力で作業を効率化!

 今回は、IF関数とWEEKDAY関数を組み合わせて、曜日固定の予定をスケジュール表に自動で表示させるテクニックを解説しました。一度数式を完成させれば、予定表をコピーして再利用することで数式も使い回すことができ、予定の自動入力を毎回繰り返せるので、作業の効率が大幅にアップします。

 また、操作の途中で利用した[数式]タブの[関数の挿入]を使うと、関数を使った数式の入力がとてもラクになります。IF関数以外でも使えるので、数式作成に苦手意識のある方はぜひ活用してみてくださいね。

 関数を使いこなせるようになると、Excelを業務でもっと活用できるようになります。今後も本連載ではいろいろな関数を扱っていきますので、期待していてください!

今月のExcelTips