E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 171
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「文字列として入力されている数字を数値化するには」
三重:先生、文字列として取り出した数字がありますよね。
藤原:うん。
三重:それを数値にしようとして、セルの書式設定で表示を数値にしたの
ですが、数値になりません。
藤原:そうだね。
三重:何とか数値化する方法はないのですか?
佳代:あっ、それ知っているよ。前にやったんじゃない?
藤原:どこかで、ちょっと言ったような気がするね。
三重:えーっと、覚えていません。
藤原:それじゃあ、今回は、それを問題にしよう。
佳代:わかりました。それでは、問題です。文字列として入力されている
数字を数値化するにはどうしたらいいのでしょう?みなさんも一緒
に考えてくださいね。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。
・大場佳代:藤原先生の生徒で,パソコン暦1年。
・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。
※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
のみを扱っています。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
◆ MOUS上級試験を目指している方は、是非どうぞ! ◆
◆ 詳しくは、巻末を見てください ◆
◆ http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:これは、違う問題をやったときに、ちょっとだけ言ったような気が
する。
三重:ぜんぜん覚えていません。
藤原:うん、実は、掛け算をすればいい。
三重:掛け算ですか?
藤原:ちょっと試しに、どこのセルでもいいから文字列で、1234って入れ
てごらん。
三重:ハイ、えーっと、入力するとき、’をつけて、’1234って入れれば
いいわけですね。とりあえず、A1のセルに入れてみます。
藤原:そう。すると、セルの中で、左詰になっているよね。
三重:なっています。数値なら右詰になるはずです。
藤原:その隣のセルに、=A1*1 って式を入れてごらん。
三重:ハイ、あっ、右詰になりました。
佳代:掛け算することで、数値になるのですね。
藤原:そう。とりあえず数値に変えるだけだったら「1」を掛ければいい。
三重:でも、変えたいものがたくさんあるときは面倒ですね。
藤原:そうなんだ。そこで、前に言った技を使えばいい。
三重:一気に「1」を掛ける方法があるのですか?
藤原:一気に掛けられるだけでなく、余計なセルを使う必要もない。
佳代:わたしが答えを言いましょう。まずは、どこかのセルに「1」を入れ
ます。そして、それをコピーします。
三重:えっ?コピー?何で・・・?
佳代:そして、文字列にしたい数字を選択して、[編集]メニューから[形式
を選択して貼り付け]を選び、「乗算」を選んでOKします。
藤原:そのとおり。この方法ならば、文字列が一気に数値に変わる。ポイ
ントは、「1」をコピーして、乗算として貼り付けること。
三重:そういえば、全部の数字を10倍するときにやったような気がします。
藤原:そうだね。その方法を使うことができる。
佳代:文字列操作関数などで抜き出した数字を数値にしたいときには便利
な技ですね。みなさんも是非使ってみてください。それでは、今日
はこの辺で。
E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 172
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「平均年齢を○歳○ヶ月と入れるには」
三重:先生、先週、○歳○ヶ月ってやつをやりましたよね。
藤原:うん、やったね。
三重:それを父に話したら、大喜びで、平均も出せっていうんです。
佳代:えー、またー。
三重:そうなのよ。調子に乗るととまらないのよ。
藤原:そうか、でも、こちらは、簡単には行かないね。
三重:やっぱり。
藤原:でも、計算のセルを使えばできるよ。
三重:ホントですか!じゃあ、それをやりましょう。
藤原:わかったよ。それじゃあ、この前のやつを使ってやろう。
佳代:わかりました。前にやった表に平均年齢って入れればいいのですね。
┏━┳━━━━━┯━━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━━┿━━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃生年月日 │年齢 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃2┃S.32.4.30 │44歳10ヶ月│ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃3┃S.38.6.30 │38歳8ヶ月 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃4┃S.41.8.5 │35歳7ヶ月 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃5┃ │ │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃6┃最年少 │44歳10ヶ月│ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃7┃最年長 │35歳7ヶ月 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃8┃平均年齢 │ │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃9┃ │ │ │ │ ┃
┗━┻━━━━━┷━━━━━┷━━━━┷━━━━┷━━━━┛
藤原:そう、今度は、計算用のセルを使っていいから、平均年齢を出して
ほしい。
佳代:わかりました。それでは、問題です。B3のセルに、平均年齢を○歳
○ヶ月の形で出すにはどうしたらいいでしょう?みなさんも、一緒
に考えてくださいね。
※ 注意 前回は、169号でやりました。見ていない方は、↓ をどうぞ。
http://www.pat.hi-ho.ne.jp/hirosilk/exb166.htm#169
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。
・大場佳代:藤原先生の生徒で,パソコン暦1年。
・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。
※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
のみを扱っています。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
◆ MOUS上級試験を目指している方は、是非どうぞ! ◆
◆ 詳しくは、巻末を見てください ◆
◆ http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:とにかく、簡単に計算しようとするとできない。日付はシリアル値
で管理されているからね。
三重:あっ、シリアル値って覚えました。1900年1月1日を「1」として
連番で表しているのですね。
藤原:うん、エクセルは、その数字を元に計算している。だから、単純に
平均はできないわけだ。
佳代:そうですね。どちらにしても、169号で使った、DATEDIF関数は必要
ですね。
藤原:うん、ま、方法は、いろいろあるけど、とりあえず、わかりやすく
して考えてみよう。一気に○歳○ヶ月を計算してはいけない。
三重:どうしたらいいのですか?
藤原:まず、通算の月数で考える。
三重:通算の月数ですか?
藤原:そう。それを平均すれば、とりあえず、平均年齢ならぬ、平均生存
月数がでるだろ。
佳代:あっ、そうですね。それならば、すぐに出せます。
藤原:言ってごらん。
佳代:ハイ、例えば、C2のセルに、=DATEDIF(A2,TODAY(),"M")とします。
藤原:うんうん。
佳代:そうすれば、その人の、生存月数が計算できます。
┏━┳━━━━━┯━━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━━┿━━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃生年月日 │年齢 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃2┃S.32.4.30 │44歳10ヶ月│=DATEDIF(A2,TODAY(),"M") ┃
┠─╂─────┼─────┼────┼────┼────┨
┃3┃S.38.6.30 │38歳8ヶ月 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃4┃S.41.8.5 │35歳7ヶ月 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃5┃ │ │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃6┃最年少 │44歳10ヶ月│ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃7┃最年長 │35歳7ヶ月 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃8┃平均年齢 │ │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃9┃ │ │ │ │ ┃
┗━┻━━━━━┷━━━━━┷━━━━┷━━━━┷━━━━┛
藤原:そのとおり。これをフィルハンドルでコピーしてやればいい。この
式の意味は、誕生日から今日までの月数ということだね。
三重:そうです。DATEDIF関数は、=DATEDIF(開始日,終了日,"単位")です。
藤原:うん、「Y」が年数、「M」が月数、「D」が日数だったね。
佳代:ハイ。そして、この月数を、AVERAGE 関数を使って平均すればいい
のですね。
藤原:そういうこと。
┏━┳━━━━━┯━━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━━┿━━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃生年月日 │年齢 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃2┃S.32.4.30 │44歳10ヶ月│ 539│ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃3┃S.38.6.30 │38歳8ヶ月 │ 465│ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃4┃S.41.8.5 │35歳7ヶ月 │ 427│ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃5┃ │ │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃6┃最年少 │44歳10ヶ月│ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃7┃最年長 │35歳7ヶ月 │=AVERAGE(C2:C4) │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃8┃平均年齢 │ │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃9┃ │ │ │ │ ┃
┗━┻━━━━━┷━━━━━┷━━━━┷━━━━┷━━━━┛
三重:すると、この平均通算月数を年と月に分けてやればいいのですね。
藤原:そう。どうしたらいいの?
佳代:ハイ、まず、平均通算月数を12で割って、整数部分と余りの部分に
分ければいいと思います。
藤原:そのとおり。今回は、INT関数とMOD関数を使ってやろう。
三重:えーっと、INT関数は、整数部分以外は切り捨てる関数でしたよね。
MOD関数は、確か、=MOD(数値,除数)でしたよね。
藤原:よく覚えていたね。
佳代:すると、こんな感じになりますね。
┏━┳━━━━━┯━━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━━┿━━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃生年月日 │年齢 │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃2┃S.32.4.30 │44歳10ヶ月│ 539│ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃3┃S.38.6.30 │38歳8ヶ月 │ 465│ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃4┃S.41.8.5 │35歳7ヶ月 │ 427│ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃5┃ │ │ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃6┃最年少 │44歳10ヶ月│ │ │ ┃
┠─╂─────┼─────┼────┼────┼────┨
┃7┃最年長 │35歳7ヶ月 │ 477│ =MOD(C7,12) ┃
┠─╂─────┼─────┼────┼──↓↓┼────┨
┃8┃平均年齢 │ │ │ │ ┃
┠─╂─────┼─────┼↑↑──┼────┼────┨
┃9┃ │ │=INT(C7/12) │ ┃
┗━┻━━━━━┷━━━━━┷━━━━┷━━━━┷━━━━┛
藤原:うん、これで年と月、つまり「歳」と「ヶ月」の部分の数字ができ
た。後は、B8のセルに、& や "" を使って、つなげてやればいい。
三重:は〜い、それは、わたしにまかせてください。こんなのでどうです
か? =C8&"歳"&D8&"ヶ月"
藤原:よろしい、B8のセルに、入れてあげると、きちんと 39歳9ヶ月って
出るよね。
三重:出ました。
藤原:今回のような、問題は、非常に注意が必要だね。歳は歳、月は月で
考えると、端数が出て、平均が計算できなくなる。やはり、月数を
使うのがいちばん簡単でわかりやすいと思うよ。
佳代:わかりました。みなさんも、是非、試してみてください。それでは
今日はこの辺で。
E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 173
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「24時間を越える時間を集計するには」
三重:先生、エクセルって、12:00と13:00を足すと1:00になってしまうの
ですね。
藤原:そうだよ。時刻を基準にしているからね。
三重:それじゃあ、時間を計算する場合不便ですね。
藤原:そうだね。
佳代:でも、何か方法があるんじゃない?
三重:そうねぇ、ありそうねぇ。
藤原:もちろん、あるよ。それじゃあ、今日は、それを問題にしよう。佳
代ちゃん、簡単な表を作って問題を出して。
佳代:わかりました。それでは問題です。下の表のように、D6のセルに合
計した時間が表示されるようにするにはどうしたらいいでしょう?
みなさんも一緒に考えてくださいね。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃日付 │開始時間│終了時間│合計時間│ ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃4/1 │ 9:00│ 17:00│ 8:00│ ┃
┠─╂────┼────┼────┼────┼────┨
┃3┃4/2 │ 9:00│ 16:00│ 7:00│ ┃
┠─╂────┼────┼────┼────┼────┨
┃4┃4/3 │ 9:00│ 17:00│ 8:00│ ┃
┠─╂────┼────┼────┼────┼────┨
┃5┃4/4 │ 9:00│ 15:00│ 6:00│ ┃
┠─╂────┼────┼────┼────┼────┨
┃6┃合計 │ │ │ 29:00│ ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。
・大場佳代:藤原先生の生徒で,パソコン暦1年。
・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。
※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
のみを扱っています。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
◆ MOUS上級試験を目指している方は、是非どうぞ! ◆
◆ 詳しくは、巻末を見てください ◆
◆ http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:まず、横の合計は、単純に引き算でいい。
三重:ハイ、例えば、D2のセルならば、=C2-B2 でいいのですね。
藤原:そのとおり。開始時間、終了時間が24時を超えない場合は、そのま
までいい。ただし、24時を超えた場合は、ちょっと工夫が必要だけ
ど、これは、別の機会にしよう。
佳代:今日は、合計して、合計の数字を出すのがテーマですね。
藤原:そういうこと。もし、このまま普通に合計したら、答えが、5:00に
なってしまうはずだ。
三重:やってみます。SUM関数でいいですね。
藤原:うん、いいよ。
三重:それでは、D6のセルに、オートSUMのボタンを使って合計します。
あっ!やはり、5:00になりました。
藤原:そうだよね。とりあえず、式は、=SUM(D2:D5)であっているよね。
佳代:あっています。しかし、答えが、時間でなく、時刻で示されている
のです。
藤原:うん、これを、時間にしなければならない。
三重:表示形式を変えればいいのですか?
藤原:そのとおり!正解だ。表示形式を、ユーザー定義で、[h]:mm にす
ればいい。やってごらん。
三重:任せてください。まず、[書式]の[セル]から、[セルの書式設定]の
ダイアログボックスを出します。そして、「表示形式」のタブから
ユーザー定義を選びます。
藤原:うん、その辺は大丈夫だね。
三重:ハイ、そして、「種類」の細いボックスに直接入力します。
藤原:うん、それでいい。
三重:ハイ、OKを押すと、あっ、ちゃんと、29:00になっています。
藤原:そうだね。エクセルは、通常、24時間を超えると1日と認識する。
だから、そのままでは、このような計算ができないのだけど、かぎ
かっこをつけた表示をすると、それを超える計算をすることができ
る。今後、この手の問題を多くしていこう。
佳代:そうですね。今回は、24時間を超えた場合でしたが、いろいろなケ
ースがありますよね。もっともっと知りたいです。
藤原:うん、少しずつやっていこう。
佳代:わかりました。とりあえず、時間の計算だけでしたが、これだけで
も役に立つと思います。みなさんも是非試してみてください。それ
では、今日はこの辺で。
E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 174
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「誕生日が来るとHappy birthday!と表示させるには」
佳代:先生、読者の方から面白い質問がありましたので、問題にしてくだ
さい。
藤原:OK。
佳代:それでは、問題を読みます。「現在、エクセルで名簿作りをしてい
ます。今日現在、誕生日を迎えた人に「Happy birthday!」という
表示を自動的にすることは可能でしょうか?」
三重:あっ、それ面白そうね。
藤原:そうだね。それじゃあ、それを問題にしよう。
佳代:わかりました。それでは問題です。下の表のように名簿に生年月日
が入っている場合、誕生日がきたら「Happy birthday!」と自動的
に表示させるには、どうしたらいいでしょう?みなさんも一緒に考
えてくださいね。(本日は、2002年4月6日です)
┏━┳━━━━━━┯━━━━━━┯━━━━━━┯━━━━━━┓
┃ ┃A │B │C │D ┃
┣━╋━━━━━━┿━━━━━━┿━━━━━━┿━━━━━━┫
┃1┃氏名 │生年月日 │誕生日 │ ┃
┠─╂──────┼──────┼──────┼──────┨
┃2┃山田華子 │1987/10/28 │ │ ┃
┠─╂──────┼──────┼──────┼──────┨
┃3┃西村京子 │1970/5/15 │ │ ┃
┠─╂──────┼──────┼──────┼──────┨
┃4┃篠田幸子 │1988/4/6 │Happy birthday! ┃
┠─╂──────┼──────┼──────┼──────┨
┃5┃大出美香 │1966/12/12 │ │ ┃
┠─╂──────┼──────┼──────┼──────┨
┃6┃本橋早苗 │1976/4/6 │Happy birthday! ┃
┗━┻━━━━━━┷━━━━━━┷━━━━━━┷━━━━━━┛
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。
・大場佳代:藤原先生の生徒で,パソコン暦1年。
・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。
※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
のみを扱っています。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
◆ MOUS上級試験を目指している方は、是非どうぞ! ◆
◆ 詳しくは、巻末を見てください ◆
◆ http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
三重:簡単なようで、結構難しそうですね。
藤原:うん、ほんのちょっとだけ頭を使わないとうまくいかないよ。
佳代:そうですね。生年月日は、すべてシリアル値で管理されていますか
ら、直接は使えませんね。
藤原:そう。でも、これまでに学習したものを総動員すれば、答えが出せ
るよ。
三重:う〜ん、やはり、月と日が一致していればいいわけですから、その
辺を使えばできるような気がします。
藤原:うん、いいところに目をつけたね。そのとおりだ。
佳代:すると、MONTH関数とDAY関数ですね。
藤原:そのとおり。かなり昔やったので、ちょっと復習しておこう。
三重:ハイ、わたしが解説します。MONTH 関数は、=MONTH(セル番地)で、
日付データから、月を取り出します。例えば、2002年4月6日なら
ば、「4」を返します。
藤原:そうだったね。
三重:DAY 関数は、同じように、=DAY(セル番地)で、日を取り出します。
ここでは、「6」を返します。
藤原:そういうこと。セル番地に入った日付データから「月」、あるいは、
「日」を取り出せるんだったね。
佳代:そうですね。セル番地の変わりに、直接日付を入れることもできま
す。
藤原:うん。それじゃあ、その辺を頭に入れて、具体的に今日の問題をや
っていこう。
佳代:これは、IF関数が必要ですね。
藤原:そうだね。一致した場合は、「Happy birthday!」を表示させ、一
致しない場合は空白のままということになるからね。
三重:すると、イメージ的には、もし、条件が合えば、Happy birthday!、
合わなければ "" って感じで式を作ればいいのですね。
藤原:そのとおり。そこまでわかれば、後は、どのようにして条件を一致
させるかだね。
佳代:TODAY関数は必要ですね。
藤原:もちろん。TODAY 関数を使わないと、自動的に表示することはでき
ないから。
佳代:あっ!なんとなくわかってきました。更に、月と日の両方が一致し
なければダメですね。
藤原:そういうこと。それで、だいたい式を立てるメドが立っただろ?
三重:う〜ん、わかるようでわからないような・・・。
佳代:先生、こういうことじゃないのですか。もし、生年月日のデータの、
「月」の部分と「日」の部分が、今日の「月」の部分と「日」の部
分に一致したら、Happy birthday!を出しなさい。そうでなければ、
空白にしなさい。
藤原:正解だ。それを式にまとめればいい。
三重:わかりました!AND関数も使うのですね。
藤原:そのとおり。AND 関数は、AかつBという条件を表すんだったね。
今回のように、両方満たしたときにTRUEになるのわけだ。
佳代:それじゃあ、挑戦してみます。C2のセルに入れます。こんな感じで
すか?
=IF(AND(MONTH(B2)=MONTH(TODAY()),DAY(B2)=DAY(TODAY())),"Happy
birthday!","")
三重:佳代、やってみるよ。
藤原:コピーしてごらん。
三重:あっ!できました。今日の日付と同じ、4月6日生まれの人のとこ
ろだけに、Happy birthday!が表示されました。
藤原:よろしい。正解だ。式をもう一度解説すると、IF関数を使って、も
し、B2のセルに入っている日付データの「月」と今日の「月」の数
値が同じで、かつ、B2の日付データの「日」と今日の「日」の数値
が同じならば、Happy birthday!を入れなさい。そうでなければ、
空白にしなさいということだ。
三重:長いですねぇ・・・。
藤原:そうだね。だから、どこかのセルに、TODAY 関数が入っている場合
は、それを利用して、TODAY() の代わりに、そのセル番地を入れて
もいい。でも、慣れてきたら、直接入れてしまった方がわかりやす
いかもしれないね。
佳代:わかりました。これは、名簿などで使えそうですね。顧客管理をし
ている人などでも、使えると思います。是非、使ってみてください。
それでは、今日はこの辺で。
E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 175
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「誕生日データをもとに十二支を表示させるには」
三重:先生、今年は、馬年ですよね。
藤原:そうだね。
三重:去年は、確か、へび年でした。
藤原:うん。
三重:それって、自動的に出すことはできないのですか?
佳代:あっ!それ、読者からの質問でも来ていたよ。生年月日で、何年か
表示する方法。
藤原:なるほどね。じゃあ、今日は、それを問題にしようか。
三重:お願いします。
藤原:いろいろな方法があると思うけど、今回は、少し条件をつけるよ。
まず、十二支の表を作ること。そして、その表に「十二支表」とい
う名前を付けて、別のシートに作ること。
三重:名前を付けておくと、他のシートで使いやすいですね。
藤原:そう。そして、それを利用して式を作ること。
佳代:わかりました。それでは、問題です。生年月日のデータを元に、十
二支を示すにはどうしたらいいでしょう?ただし、十二支表を別の
シートに作って利用するのが条件です。みなさんも一緒に考えてく
ださいね。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。
・大場佳代:藤原先生の生徒で,パソコン暦1年。
・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。
※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
のみを扱っています。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
◆ MOUS上級試験を目指している方は、是非どうぞ! ◆
◆ 詳しくは、巻末を見てください ◆
◆ http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:まずは、十二支の表を作ることから考えよう。
三重:ハイ。作るだけなら簡単だと思いますが。
藤原:うん。それじゃあ、とにかく、空いているシートに作ろう。空いて
いるシートがない人は、[挿入]メニューの[ワークシート]をクリッ
クして、シートを増やしてほしい。
三重:ハイ。そして、十二支を入れます。
藤原:これは、いちいち、入力しなくていいよ。連続データになっている
から。
佳代:すると、子、丑、虎・・・の「子」を入れてフィルハンドルでコピ
ーすればいいのですね。
藤原:そういうこと。とりあえず、左に、一列空けて作ってみて。
三重:ハイ。あっ!ホントだ、子だけ入れてフィルハンドルで簡単にコピ
ーできます。
藤原:ついでに読みを入れておこう。通称も入れておくと、後で、使いや
すい。
三重:これでいいですか?
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃ │ 子│ ね│ねずみ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃ │ 丑│ うし│ うし年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃3┃ │ 寅│ とら│ とら年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃4┃ │ 卯│ う│うさぎ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃5┃ │ 辰│ たつ│ たつ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃6┃ │ 巳│ み│ へび年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃7┃ │ 午│ うま│ うま年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃8┃ │ 未│ ひつじ│ひつじ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃9┃ │ 申│ さる│ さる年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃10┃ │ 酉│ とり│ とり年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃11┃ │ 戌│ いぬ│ いぬ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃12┃ │ 亥│ い│いのしし年 ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
藤原:いいだろう。問題は、一番左の列に入れる番号だ。
佳代:ただ入れてはいけないのですね。
藤原:うん。もちろん、子から連番でもかまわないけど、生年月日データ
から、十二支のデータにするときの式が複雑になるから、こちらの
表のほうで調節しておく。その方が楽だよ。
三重:どうやるのですか?
藤原:まず、十二支だから、12種類あるわけだよね。
三重:もちろんです。
藤原:こういうものを判別するときは、割り算の余りを使うんだ。
佳代:割り算の余り?つまり、12で割ったときの余りを利用するのですね。
藤原:そのとおり。
三重:なるほど、12で割ったときの余りは、12種類になりますね。
藤原:うん。割り切れるときが、0で、あとは、1、2、3・・・11まで、の
12種類になる。
佳代:わかりました。つまり、あらかじめ、12で割った余りをこの表に入
れておけばいいわけですね。
藤原:そういうこと。
三重:えっと、今年は、2002年ですから、2002÷12は・・・、余りは、10
です。
藤原:そうだね。つまり、午年が、10ということ。後は、それをもとに、
連番をつければいい。
三重:すると、こうなります。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃ 4│ 子│ ね│ねずみ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃ 5│ 丑│ うし│ うし年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃3┃ 6│ 寅│ とら│ とら年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃4┃ 7│ 卯│ う│うさぎ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃5┃ 8│ 辰│ たつ│ たつ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃6┃ 9│ 巳│ み│ へび年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃7┃ 10│ 午│ うま│ うま年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃8┃ 11│ 未│ ひつじ│ひつじ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃9┃ 0│ 申│ さる│ さる年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃10┃ 1│ 酉│ とり│ とり年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃11┃ 2│ 戌│ いぬ│ いぬ年│ ┃
┠─╂────┼────┼────┼────┼────┨
┃12┃ 3│ 亥│ い│いのしし年 ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
藤原:それでいい。一番左の数字は、年号を12で割った余りが記されてい
る。この表さえ作ってあれば、どのシートでも、簡単に使える。
佳代:それでは、この表に名前をつけます。
藤原:今回は、いつもと違う方法で名前を付けてみよう。まずは、A1から
D12までを、マウスなどで選択状態にする。
三重:ハイ。
藤原:そして、[挿入]メニューの[名前]から[定義]を選ぶ。
三重:この方法も知っています。
藤原:そうだね。[作成]ではなく[定義]だからね。そこを間違えないよう
にね。
三重:大丈夫です。
藤原:そして、名前の欄に、「十二支表」って入力して[追加]ボタンを押
す。
三重:追加されました。OKボタンを押します。
藤原:うん。これで、第一段階は、終了。後は、住所録データに、式を入
れるだけだ。それでは、簡単に示すよ。前回使った表を利用しよう。
佳代:えーっと、わたし、なんとなくわかります。
藤原:それじゃあ、やってごらん。
佳代:こうですか?
┏━┳━━━━┯━━━━━┯━━━━━━┯━━━━━━┓
┃ ┃A │B │C │D ┃
┣━╋━━━━┿━━━━━┿━━━━━━┿━━━━━━┫
┃1┃氏名 │生年月日 │十二支 │ ┃
┠─╂────┼─────┼──────┼──────┨
┃2┃山田華子│1987/10/28│=VLOOKUP(MOD(YEAR(A2),12),十二支表,4,0)
┠─╂────┼─────┼──────┼──────┨
┃3┃西村京子│1970/5/15 │ │ ┃
┠─╂────┼─────┼──────┼──────┨
┃4┃篠田幸子│1988/4/6 │ │ ┃
┠─╂────┼─────┼──────┼──────┨
┃5┃大出美香│1966/12/12│ │ ┃
┠─╂────┼─────┼──────┼──────┨
┃6┃本橋早苗│1976/4/6 │ │ ┃
┗━┻━━━━┷━━━━━┷━━━━━━┷━━━━━━┛
藤原:おお、正解だ。それでいいよ。
三重:これって、たくさん関数を使っているね。
藤原:そうだね。一つ一つがわからないと、難しいかもしれないけど、こ
れまで何回もやっているから、わかりにくい人は、一つ一つ復習し
てほしい。
佳代:それでは、簡単に説明します。まず、最初に作った「十二支表」を
使い、VLOOKUP関数で、表引きします。
藤原:うん。
佳代:ただし、生年月日のデータの、年号部分だけが対象ですから、YEAR
関数を使って年号部分を取り出します。
三重:それが、YEAR(A2)ね。
佳代:そうよ。だから、割り算の余りを出す、MOD 関数に入れて、表の番
号と一致させればいいというわけ。
藤原:VLOOKUP関数の公式は、=VLOOKUP(検索値,表の範囲,列番号,検索の型)
だったね。表の範囲は、名前を付けたので、十二支表でいい。そし
て、列番号は、表の中の列、ここでは、4を選んでいるから「うま年」
とか「へび年」という具合に表示されるわけだ。2を選べば「午」と
か、「未」とか表示される。これは、好みでいいね。
三重:ハイ、最後の「0」は、完全一致のときに使います。この場合は、省
略してもかまいません。
藤原:うん。この辺がよくわからない人は、バックナンバーで勉強しても
らいたいね。
佳代:ハイ。今回は、復習の意味も兼ねて、関数の使い方を巻末に示した
いと思います。
藤原:そうだね。一つ一つは、それほど難しくないけど、組み合わせると
とても難しくなるからね。
佳代:そのとおりですね。みなさんも、是非、作ってみてください。今回
みたいに別のシートに作っておけば、邪魔にもなりません。すでに
あるデータの横に、この式を入れて、何年かを表示させてください。
また、下の関数の復習も見ておいてくださいね。それでは、今日は、
この辺で。
【関数の復習】
・VLOOKUP関数 公式 =VLOOKUP(検索値,表の範囲,列番号,検索の型)
表の左端列を基準にして、指定した列と一致するものを、返します。
詳しくは、 http://www.pat.hi-ho.ne.jp/hirosilk/exb121.htm#122
・MOD関数 公式 =MOD(数値,除数)
割り算の余りを返す関数です。数値は、セル番地でもOK。
詳しくは、 http://www.pat.hi-ho.ne.jp/hirosilk/exb111.htm#114
・YEAR関数 公式 =YEAR(セル番地)
日付データから、年号を取り出す関数です。
詳しくは、 http://www.pat.hi-ho.ne.jp/hirosilk/excelback6.htm#27
【名前】とは、セルやセル範囲をあらかじめ名前を付けて定義しておくも
ので、関数などにそのまま使うことができます。よく使う表は、名前を
つけておくと便利です。
★ エクセルの小技へ ★ | ★ TOPのページへ ★ | ★ 次へ(176〜180) ★ |