札幌市(厚別区・西区・手稲区・東区・白石区)・江別市(野幌)・小樽市・千歳市
の方に親しまれているパソコン教室 YESパソコン学院
初心者 から 資格取得(MOS) 趣味の講座 も実施中
MOS試験も当校で受験可MOS試験校
高校生 大学生 主婦 社会人 シニア 全ての方に対応できます
注意:この記事はシリーズ物になっています
前回までの記事を見ていない方は、まず前回の記事からご覧ください
前回までのあらすじ
カレンダーを手軽に作れるように、複雑な関数を入れてカレンダーを作りました
しかし、思い通りには行かず、40日まで表記されてしまう事に…
これをどうすれば良いか…というのを前回、問題として出題しましたが、答え、分かりましたでしょうか?
32日以降を消せば良い…?
でも月が変わる毎に入れなおさなければいけないし、結局余計に手間が掛かるんじゃ…
というような心配は無用です
こういう時は、別の関数を使えば良いのです
今回書き換えるのは、第5週目と第6週目の所です
第4週目までは確実に日付は入りますから、書き換えるのは5週目と6週目の所で充分です
まずは、下図のように、第4月曜日のセル(C列8行目)をクリックして選択しておきましょう
選択が出来ましたら、新しく関数を入れますので、Deleteボタンで消してしまいましょう
消しました。すると第5火曜日以降の日付がまた1にリセットされますが、どうせオートフィルで上書きしてしまいますので気にせず関数を入れて参りましょう
では、今回果たして何の関数を使えば良いのかと言うのが問題でしたが、
正解はMONTH関数です
「なんか聞いた事のない関数だな」「どういう関数なんだよ説明しろよ」とお思いの方もいるかと思いますので、説明致しますと
MONTHとは、つまり「月」の事
日付のデータから月の数字だけを表示させる事が出来る関数です
例えば「2018/8/23」と入力されたデータがあるとするなら、8月なので「8」と表示されます
これが今回の件と何の関係があるのかは、実際に関数を入れた後、解説します
では、早速関数を入れましょう
C列8行目が選択されている状態で、「fx」ボタンをクリックし「関数の挿入」ウィンドウを表示させ、関数名の一覧から「IF」を選択し、「OK」ボタンをクリックしましょう
IF関数の入力画面に進みますので、下図のように入力して行きましょう
まず、「論理式」の欄に「B8=""」
次に「真の場合」の欄に「""」
最後に「偽の場合」の欄をクリックしてカーソルを持ってきた後、左上の「▼」ボタンをクリックして関数一覧を表示させ、一覧から「IF」をクリックしましょう
もし「IF」がなければ「その他の関数」をクリックし、「IF」関数を探します
するともう1つの新しいIF関数の入力画面にはいります
まず、「論理式」の欄に「MONTH」関数を挿入します
もう一度左上「▼」のボタンをクリックし、一覧から「MONTH」を選んでクリックしましょう
もしなければ、「その他の関数」をクリックし、一覧から「MONTH」を選びましょう
すると、MONTH関数の入力画面に入ります
入力欄にカーソルがある事を確認し、第5日曜にあたる日付(ここではB列8行目)をクリックしましょう
すると入力欄に「B8」と入力されます
入力されましたら、数式バーの「IF」と書いてある場所をクリックします
間違って「OK」ボタンを押さない様に気を付けましょう
するとIF関数の入力画面に戻ります
「論理式」欄に「MONTH(B8)」という文章が追加されていますので、その後ろに「=」を入れます
その後、左上の「▼」ボタンをクリックし、「MONTH」を選び、クリックしましょう
すると、新しくMONTH関数の入力画面に入りますので、
今度は「B8+1」と入力し、先程と同じ様に数式バーの「IF」と書いてある場所をクリックします
「OK」ボタンはクリックしない様に気を付けましょう
IF関数入力画面に戻りますと、「論理式」欄には「MONTH(B8)=MONTH(B8+1)」という入力になっています
そうなっている事が確認出来たら、今度は「真の場合」欄にB8+1と入力し、「偽の場合」欄には「""」と入力します
以上入力を終えたら「OK」ボタンをクリックします
これで数式が完成しました
後は、この入力した数式を右にオートフィルしてみましょう
オートフィルしたのは1行だけですが、上の図をご覧の通り、31日より後の日付は空白になっています
空白になったので、成功です
上手く行った所で、仕組みの解説に入ります
まず、最初にIF関数を挿入し、論理式に「B8=""」と入れ、真の場合に「""」と入れました
これはB列8行目が空白だったらB列9行目も空白の扱いにするという意味です
これは前回も使いましたね
その後、偽の場合にMONTH関数を入れ、「B8」を選択、その後「=」を付けたし、その後ろにMONTH関数を入れ、「B8+1」と入れました
これは前日の月とその次の日の月を比較しています
つまりどういう事かと言いますと、
B列8行目には「27」と入力されています
という事は「B8」というのは「27」、一方「B8+1」と入力されているのは「B8」に1をプラスしているので「28」ですね
そしてMONTHというのは日付の「月」だけを出力する関数
つまり27日の月と28日の月が同じかどうかを比べているわけです
27日と28日はどちらも同じ1月なので処理は真の場合へ
真の場合には、「B8+1」と入力されているので、B8に入力されている数字に1をプラスする処理になります
よってC列8行目には「28」と入力されます
一方で、G列8行目からは空白になっていますが、これは1月31日の次の日は2月1日になる為、月は同じでなくなってしまいます
同じでなければ偽の場合となり、空白の処理を返すようにしてあるので、31日より後の日付は空白になります
後は下の行にも同じ式を入れてオートフィルすれば大丈夫です
ただし、日曜日のセルに式を入れる時は土曜日の日付と比較しなければいけないので、そこだけはご注意ください
…とここまで作っておいて、1つミスがある事に気付きました
それは試しに1月を2月に書き換えた時の出来事でした
どこがおかしいか、もうお分かりだと思います
そうです。2月なのに31日まで表記されているではないですか
何故こうなってしまったかと言いますと、2行目のタイトル部分は日付のデータになっていますが、その下の日付が入るセルが日付のデータになっていなかったからです
4行目以降のセル内も日付のデータに変えなくてはいけない事に今更ながら気付いてしまいました
失礼致しました。元々は予定ではなかったですが、その直し方も教えます
まず最初に日付部分(B列4行目からH列9行目)を範囲選択し、表示形式を変更します
表示形式の設定方法は前回も掲載しましたので省略しますが、表示形式のダイアログボックスを表示させ、ユーザー定義に切り替えます
後は「G/標準」と書いてある場所に「d」と入れてOKボタンをクリックします
入力が終わればOKボタンをクリックしましょう
表面上は変化ありませんが、このまま続けます
今回変更するのは4行目のセルで、IF関数の真の場合の欄に「1」と入れましたが、そこを全部「B2」に変更します
オートフィルすると数式が全て上書きされてしまい、直すのが更に大変になりますので、今回は1つ1つ書き換えましょう
全ての書き換えが完了すると……
ちゃんと28日までの表記になってくれます
気になる方は、念の為「2月」を他の月に書き換えて結果を確かめてみてください
何故こういう現象が起きたかといいますと、実は日付も数字で管理されています
1900年1月1日を「1」とカウントして、以降の日付も数字で割り当てています
試しに、今「2月」と入れてある場所(B列2行目)にセルを合わせて表示形式のダイアログボックスを開き、「数値」をクリックしてみると
「43497」と表記されているのが分かりますね
これは、2019年2月1日は、数字に置き換えると「43497」になるからです
表示形式について、また1つ勉強になりましたね。Excelは奥が深いです
失敗から学ぶ事も多かれ少なかれあります。間違える事で人間はまた賢くなるものです
だから間違える事は決して恥ではないんだよという事を、今回のブログで教える事が出来たのではないかと思います
そういう意味で、今回のテーマは正解だったような気がします
何を書いた所で、言い訳にしか聞こえませんが……
気を取り直して、今回は更に続けて祝日を自動で赤文字に変更する方法を教えます
そんな方法があるとしたら、どうやって…?とお思いの方も多いと思いますが、
条件付き書式と関数を利用すれば可能です
今、条件付き書式という言葉を出しましたが、そもそも条件付き書式とは何かご存知でしょうか
分からない方の為に説明しますと、条件付き書式というのは、その名の通り、指示した条件によってセルの塗りつぶし、フォントのスタイル(太字等)、文字の色といった書式を自動で変更してくれる、Excelの機能の一つです
例えば、数字が50以上だったら青字に、10以下だったら赤字にする…という感じです
その条件は自分で設定する事が出来、これを利用する事で、祝日にあたる日付を赤文字に変更する事が可能になるわけです
まず、条件付き書式を使う前に、その下準備として、祝日一覧表というのを作ります
この祝日一覧表が、条件付き書式を使うにあたって重要となります
祝日一覧表は別のシートに作りますので、シートを追加します
下のシート名の右側にプラスのボタンがありますので、そちらをクリックします
新しく「Sheet2」が追加されました
早速、追加した新しいシートに、祝日一覧表を入れましょう
2019年の祝日は、各自調べてください
作りました
来年また書き換える事を考えて、振替休日は下にしてあります
それ以外は月ごとに入力してあります
祝日名は分かりやすい様に入れてあるだけで、今回使うのは日付の列のみです
祝日一覧表はこれで完成ですので、シートをカレンダーのシートに切り替えます
それでは、条件付き書式の設定を使いましょう
まずは、設定する範囲をドラッグで選択します
今回設定する場所は日付の部分なのでB列4行目からH列9行目です
その後、「条件付き書式」ボタンをクリックします
すると下の方にメニューが表示されますので、今回は1番下にある「ルールの管理」をクリックします
ルールの管理をクリックすると、新しく下のような画面が表示されます
その後「新規ルール」をクリックします
すると更に画面が変わりますので、表示された一覧から「数式を使用して書式設定するセルを決定」をクリックします
その後、「次の数式を満たす場合に値を書式設定」と書いてある下の四角の欄をクリックし、カーソルを表示させておきます
この四角の欄にある関数を入れます
さて、そこで問題です
この四角の欄に関数を入れると先程書きましたが、何の関数を入れれば良いでしょうか
本当は今回のブログで条件付き書式までは書き切る予定でしたが、案の定長くなってしまい、これ以上長くするわけにはいかないので、ここから先は問題として出題する事にして、この問題の答えと続きは次回に致します
途中の表示形式の話は、当初の予定に組んでいなかった為、それが大きな誤算となってしまいました
これで年内に完結できるのか、先が思いやられてきましたが、年内に完結出来ずとも、このシリーズは完結させるつもりでいます
ですので、今後とも長い目でご覧いただければと思います
お見苦しい所がありましたらご容赦ください
では、ここまでご覧いただき、誠にありがとうございました
次回まで、またお会いしましょう。再見!
☯☯☯☯☯☯☯☯☯☯☯☯☯☯☯
YESパソコン学院 イオン札幌元町校
HP:http://www.yes-n.co.jp/classfeatures/hokkaido/motomati.html
☎:011-792-5390
✉:i-motomachi@yes-n.co.jp
最近のコメント