E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
     ★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L

       クイズで学ぼう!『エクセル』の小技 166

∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞

◆ 今日の問題 「文字列の一部分一致するセルをカウントするには」

三重:先生、セルの中にある特定の文字を数える方法はありますか?
藤原:特定の文字?
三重:ハイ、住所録があって、町名がありますよね。それをカウントした
   いのです。
藤原:ああ、なるほどね。町名だけでなく、市とか県とかが混じっている
   場合に数えたいことがあるよね。
佳代:そうですね。わたしは、県と市は別セルに入れていますが。
藤原:うん、なるべく活用しやすいように分けたほうがいいと思うけど、
   どうしても分けられないものもあるよね。それじゃあ、簡単な例を
   出して数える方法を問題にしよう。次の表で、A列に松原の含まれ
   る数を、C1に表示してほしい。
┏━┳━━━━━━━━━━━━┯━━━━━━┯━━━━━━┓
┃ ┃A           │B     │C     ┃
┣━╋━━━━━━━━━━━━┿━━━━━━┿━━━━━━┫
┃1┃世田谷区松原4-6-xx   │松原    │      ┃
┠─╂────────────┼──────┼──────┨
┃2┃世田谷区宮坂5-8-xx   │      │      ┃
┠─╂────────────┼──────┼──────┨
┃3┃世田谷区経堂2-1-xx   │      │      ┃
┠─╂────────────┼──────┼──────┨
┃4┃世田谷区松原4-8-xx   │      │      ┃
┠─╂────────────┼──────┼──────┨
┃5┃世田谷区松原1-1-xx   │      │      ┃
┠─╂────────────┼──────┼──────┨
┃6┃世田谷区若林3-1-xx   │      │      ┃
┗━┻━━━━━━━━━━━━┷━━━━━━┷━━━━━━┛
佳代:わかりました。みなさんも一緒に考えてくださいね。

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

○ 登場人物紹介

・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。

・大場佳代:藤原先生の生徒で,パソコン暦1年。

・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。

※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
  のみを扱っています。

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
 ◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
  ◆  MOUS上級試験を目指している方は、是非どうぞ! ◆
   ◆     詳しくは、巻末を見てください      ◆
  ◆  http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm   ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:これはね、COUNTIF 関数を使えばいいんだよ。
三重:えっ!やってみたけどできませんでしたよ。
藤原:そうだよね。普通にやったのではできない。少し工夫がいる。その
   前にせっかくだから、COUNTIF 関数の復習をしよう。
佳代:ハイ、COUNTIF 関数は、条件に合ったものの数を数える関数です。
   公式は、=COUNTIF(範囲,"検索条件")です。
藤原:そうだったよね。だから、普通に数えたい場合は、検索条件の中に、
   "松原"を入れればいいわけだ。
三重:ハイ、わたしもそうしました。しかし、結果は、0 でした。
藤原:そう。松原とか経堂とか単独で入っている場合は、それで数えられ
   るけど、今回のように、世田谷区とか他の文字列が混じっている場
   合は数えることができない。そこで一工夫をする。
佳代:う〜ん、どうしたらいいのでしょう・・・。
藤原:実は、どこかで勉強したことがあるよ。
三重:えっ、ホントですか?
藤原:ワイルドカードだよ。
佳代:あっ、ワイルドカードってジョーカーみたいな記号ですね。
三重:そう言えば、どこかでやったような・・・。
藤原:ワイルドカードとは、検索などでよく使う記号だ。例えば、「?」
   を付けると、どの文字でもいいから一文字という意味。「*」をつけ
   れば、任意の文字数という意味。
佳代:そうでしたね。例えば、「山?」とやれば「山本」でも「山下」で
   もいいから、「山+一文字」を表すのでした。
藤原:そうそう、だから、「山*」とやれば、「山本」はもちろん「山野
   井」のような二文字も対象になる。つまり「山+任意の文字数」と
   いうことになるわけだ。
三重:すると、この問題では、「松原*」とやるわけですか?
藤原:それでは不十分。「*松原*」とやらなければならない。
佳代:なるほど、これならば、松原という文字の前後に文字列がついてい
   てもカウントの対象になるわけですね。
藤原:そういうこと。だから、答えは、=COUNTIF(A1:A6,"*松原*")
佳代:わかりました。なるほど、これならば、数えたいセルに、余計な文
   字列が入っていても、COUNTIF 関数が使えますね。みなさんも是非
   使ってみてください。それでは、今日はこの辺で。


E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
     ★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L

       クイズで学ぼう!『エクセル』の小技 167

∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞

◆ 今日の問題 「最大公約数、最小公倍数を表すには」

三重:先生、数学で勉強した、最大公約数とか最小公倍数とかを求める方
   法はないのですか?
藤原:そうだね。教えてもいいけど、数学の宿題に使おうっていうんじゃ
   ないだろうね。
三重:い、いえ・・・、そんなことありません(汗)。とにかく、教えてく
   ださい。数学は数学でがんばりますから。
佳代:そうね。普段の生活でも、使うことがあるかもしれないし。
藤原:わかったよ。それじゃあ、それを問題にしよう。
佳代:わかりました。それでは問題です。エクセルを使って「最大公約数」
   を求めるにはどうしたらいいでしょう?また、「最小公倍数」を求
   めるにはどうしたらいいのでしょう?みなさんも一緒に考えてくだ
   さいね。

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

○ 登場人物紹介

・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。

・大場佳代:藤原先生の生徒で,パソコン暦1年。

・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。

※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
  のみを扱っています。

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
 ◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
  ◆  MOUS上級試験を目指している方は、是非どうぞ! ◆
   ◆     詳しくは、巻末を見てください      ◆
  ◆  http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm   ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:それでは、三重ちゃん、最小公倍数のことを数学では何と呼んでい
   るんだっけ?
三重:ハイ、LCMです。
藤原:そうだね。だから、エクセルでも、LCM関数が用意されている。
佳代:すると、=LCM(セル範囲)でいいのですか?
藤原:うん、セルを参照するときはね。ま、=LCM(数値1,数値2,・・・)と
   いう感じで、直接入れてもいい。
三重:すると、最大公約数は、GCM関数ですね。
藤原:う〜ん、それがねぇ、これは、数学とはちょっと違って、GCD 関数
   を使うんだ。
佳代:えっ、数学と違うのですか?
藤原:そうだね。通常、最大公約数は、greatest common measure だけど、
   greatest common divisor ということもあるんだ。その関係でね。
佳代:わかりました。すると、=GCD(数値1,数値2,・・・)でいいのですね。
藤原:そういうこと。例えば、24と60と90の最小公倍数だったら、セルに
   直接、=LCM(24,60,90)って入れてあげればいい。
三重:ハイ、あっ!360って出ました。これは楽ちんですねぇ(笑)
佳代:すると、同じように、24と60と90の最大公約数だったら、
   =GCD(24,60,90)ってやればいいわけですね。
藤原:そのとおり。
三重:こちらも、あっという間に出ました。6です。
藤原:まあ、学生さんには、あまり勧められないけど、場合によっては、
   役に立つかもしれないから覚えておいて損はないね。
三重:ありません(笑)
佳代:そうですね。三重みたいに宿題に使おうというのはよくないと思い
   ますが、ちょっとしたことに使えそうです。そんなときは、是非使
   ってみてください。それでは、今日はこの辺で。


E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
     ★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L

       クイズで学ぼう!『エクセル』の小技 168

∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞

◆ 今日の問題 「累乗や平方根を計算をするには」

三重:ヒトヨヒトヨニヒトミゴロ〜♪
藤原:あれっ、三重ちゃん、今日は平方根かい?
三重:いえ、別に。ただの鼻歌です(笑)
佳代:これも、エクセルでできるかなとか思ってない?
三重:思ってないよ。でも、できるのですか?
藤原:そうだね。まあ、数学には役に立たないよ。
三重:教えてください。それと、2乗とか3乗とかも。
藤原:わかったよ。それじゃあ、こんなのはどうかな?
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A   │B   │C   │D   │E   ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃数値  │    5│    │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃2乗  │    │    │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃3┃3乗  │    │    │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃4┃平方根 │    │    │    │    ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
佳代:数値を入れたら、累乗や平方根が出る表ですね。
藤原:そう。一応、知っていたほうがいいと思うからね。
佳代:わかりました。それでは問題です。上の表のように、2乗、3乗、
   平方根を出すためにはどのような式を入れたらいいでしょう。みな
   さんも一緒に考えてくださいね。

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

○ 登場人物紹介

・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。

・大場佳代:藤原先生の生徒で,パソコン暦1年。

・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。

※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
  のみを扱っています。
----------------------------------------------------------------------
■■ 小・中学生のお子さんをお持ちのお父さん・お母さんへお知らせです
■■
■■ 新年度入会キャンペーン実施中!通常会費の50%OFF! 
■■
■■ 各教科書完全対応の学習を5教科900円で受講できます。
■■
完全個別対応の学習サイトをご紹介します。費用をかけずに基礎から学習!
お子さんの学力に合わせた個別学習ができます。ぜひ一度お立ち寄り下さい。
http://www.net-schooling.com/004/004-index.htm
----------------------------------------------------------------------
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
 ◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
  ◆  MOUS上級試験を目指している方は、是非どうぞ! ◆
   ◆     詳しくは、巻末を見てください      ◆
  ◆  http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm   ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:これも、関数を覚えるだけの問題だね。
三重:専用の関数があるのですか?
藤原:そうだね。累乗の場合は、関数を使わなくともできるけど。
佳代:まずは、関数からいきましょう。
藤原:そうだね。いきなり答えを言おう。下のとおりだ。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A   │B   │C   │D   │E   ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃数値  │    5│    │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃2乗  │=POWER(B1,2)   │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃3┃3乗  │=POWER(B1,3)   │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃4┃平方根 │=SQRT(B1)     │    │    ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
三重:なるほど、累乗ってPOWER関数なのですね。
藤原:うん、公式は、=POWER(セル番地,指数)だね。もちろん、セル番地の
   ところに直接数値を入れてもいい。
佳代:平方根の関数は、何と読むのですか?
藤原:スクエア・ルートだろうね。
佳代:スクエアって、四角って意味ですね。
藤原:そうだね。正方形のことを言う。だから、平方という意味もある。
三重:ルートは、根ですね。だから平方根。
藤原:うん、そんなところだろう。 =SQRT(セル番地)。こちらも、直接数
   値を入れてもいい。そして、結果は、下のようになるね。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A   │B   │C   │D   │E   ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃数値  │    5│    │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃2乗  │   25│    │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃3┃3乗  │   125│    │    │    ┃
┠─╂────┼────┼────┼────┼────┨
┃4┃平方根 │2.236068│    │    │    ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
三重:あれっ?オームが鳴きません。
藤原:もう二桁増やせば、2.23606798になるよ。端数処理の問題だね。
佳代:富士山麓にオーム鳴くになりますね。ルート5ですね。
藤原:そう。それから、累乗を計算する場合には、もう一つ方法がある。
佳代:ええと、確か、どこかでやった記憶があります。
三重:ホント?
佳代:このメルマガではやってませんが、確か「^」を付けるのだと思い
   ます。
藤原:そのとおり、キーボードでは、ひらがなの「へ」のところにあるね。
   ハットなんて呼ぶ場合もある。半角英数で入れれば入る。上の例な
   らば、B2のセルに、=B1^2 と入れれば、B1の数字の2乗ということ
   になる。3乗なら、=B1^3 だ。POWER関数と一緒に覚えておこう。
佳代:わかりました。これも、何かの時には役立ちそうですね。みなさん
   も是非使ってみてください。それでは今日はこの辺で。


E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
     ★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L

       クイズで学ぼう!『エクセル』の小技 169

∞∞∞∞∞∞∞\(^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┃     │     │    │    │    ┃
┗━┻━━━━━┷━━━━━┷━━━━┷━━━━┷━━━━┛
三重:なるほど、結構、難しそうですね。
藤原:そうだね。でも、これまでに勉強した技を組み合わせればできるよ。
佳代:ハイ。でも、できるだけ参照のセルを使わないでやりたいそうです。
藤原:わかったよ。別にセルを作って参照するのは、なしでやろう。
佳代:わかりました。それでは、問題です。生年月日を入れたら、自動的
   に上の表のように表示させるにはどうしたらいいでしょう?みなさ
   んも一緒に考えてくださいね。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

○ 登場人物紹介

・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。

・大場佳代:藤原先生の生徒で,パソコン暦1年。

・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。

※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
  のみを扱っています。

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
 ◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
  ◆  MOUS上級試験を目指している方は、是非どうぞ! ◆
   ◆     詳しくは、巻末を見てください      ◆
  ◆  http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm   ◆
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:まずは、○歳○ヶ月の表し方からやろう。
三重:ハイ、お願いします。
藤原:これは、もちろん、DATEDIF関数を使う。
佳代:これまでに何回もやりましたよね。
藤原:そうだったね。でも、復習も兼ねて、公式を確認しておこう。
三重:えーっと、=DATEDIF(開始日,終了日,"単位")です。
藤原:よろしい。よく覚えていたね。
三重:ハイ、よく使いますから。
藤原:それじゃあ聞くけど、「年」の単位は?
三重:「Y」です。YEARですものね・・・v(^o^)v
藤原:そうだね。それから、月は?
三重:「M」です。MONTHですから。
藤原:うん、それでいい。ただし、「M」を使うと通算の月数が出てしま
   う。そこで、「YM」というのを覚えよう。
三重:「YM」ですか?
藤原:そう。それならば、最後のあまった月を表せる。
佳代:なるほど、それなら、こういう場合、うってつけですね。
藤原:そのとおり。
佳代:だいたいイメージができました。開始日は、A列を使い、終了日は、
   TODAY関数を使って、DATEDIF関数に組み込み、&でつなぐという感
   じですか?
藤原:おう、そのとおりだよ。B2のセルに次のように入れればいい。

   =DATEDIF(A2,TODAY(),"Y")&"歳"&DATEDIF(A2,TODAY(),"YM")&"ヶ月"

三重:ひぇ〜、長いですね。
藤原:確かに長いけど、一つ一つよく考えて、慎重にやればできるはずだ。
佳代:そうですね。開始日が生年月日ですから、これは、表のA列から取
   ればいいわけです。本日を表す関数は TODAY()、そして、最初の方
   が、歳の部分だから、「Y」を後ろは、月の部分だから「YM」を
   入れているのですね。
藤原:そういうこと。そして、「歳」とか「ヶ月」は「&」で結んでいる。
   これで、表示ができる。
佳代:しかし、最年少と最年長は難しいのではないですか?更に、式が長
   くなりそうです。
藤原:いや、そうでもないよ。ここは、得意技を使っていこう。
三重:得意技?
藤原:佳代ちゃんの得意技だよ。
佳代:あっ!VLOOKUP関数ですね。
藤原:そう。生年月日を元に、右側の数字を参照すればいい。
三重:なるほど、こんなときも、VLOOKUP関数が使えるのですね。
藤原:そうだね。ただし、少し、工夫がいる。でも、最初に答えを言おう。

   B6のセルに =VLOOKUP(MAX(A2:A4),A2:B4,2)
   B7のセルに =VLOOKUP(MIN(A2:A4),A2:B4,2)

   だ。MAX関数と、MIN関数を使ってそれに該当するものを表示させる。
三重:あれっ?先生、最年少が MAX で、最年長が MIN になっていますよ。
藤原:それでいいんだ。生年月日は、若いほど、値が大きい。だから、最
   年少が MAX 最年長が MIN でいいんだ。
佳代:なるほど、そうですね。日付は、1900年1月1日を1として、ナン
   バーが振られているのでしたね。
藤原:そのとおり。すべては、そのシリアル値を使って計算している。だ
   から、こういう場合は、最高を表す、MAX 関数、最低を表すMIN 関
   数を逆に使えばいい。
三重:今回は、いろいろな技を使いましたね。
藤原:そうだね。一つ一つは難しくないけど、組み合わせるとかなり複雑
   になるね。
佳代:そうですね。それだけに面白みがあります。みなさんも是非試して
   みてください。それでは、今日はこの辺で。

※ VLOOKUP関数は、↓↓↓を参考にしてください。
   http://www.pat.hi-ho.ne.jp/hirosilk/exb121.htm#122


E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
     ★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L

       クイズで学ぼう!『エクセル』の小技 170

∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞

◆ 今日の問題 「金種の計算をするには」

佳代:今日も、読者からの質問から問題を出してください。
藤原:いいよ。どんな問題かな?
佳代:ハイ、それでは読みます。「私は、社員10数名の小さな会社の経理
   パートをしています。給料は、振込みではなく現金支給なので、毎
   月、金種をそろえるのに、ちょっと面倒な思いがしております。エ
   クセルで自動的に計算できないでしょうか?」
藤原:ほう、現金支給とは珍しいね。
三重:そうですね。でも、三重は、現金の方がいいです。
藤原:それはともかく、金種を計算しなければならないことはあるかもし
   れないから、覚えておいた方がいいかもしれない。
三重:難しいのですか?
藤原:そうだね。手間をかける気なら、それほどでもないけど、ピッタリ
   はまる計算式を使うのは難しいね。
佳代:先生、わたし、問題用の表も作ってきました。
┏━┳━━━━┯━━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
┃ ┃A   │B   │C  │D  │E  │F  │G  ┃
┣━╋━━━━┿━━━━┿━━━┿━━━┿━━━┿━━━┿━━━┫
┃1┃氏名  │支払金額│ 10000│ 5000│ 1000│  500│  100┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃2┃山根信二│ 386500│   │   │   │   │   ┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃3┃右田三郎│ 217600│   │   │   │   │   ┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃4┃林 恵三│  16600│   │   │   │   │   ┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃5┃守口 衛│ 128200│   │   │   │   │   ┃
┣━╋━━━━┿━━━━┿━━━┿━━━┿━━━┿━━━┿━━━┫
┃6┃    │合計  │   │   │   │   │   ┃
┗━┻━━━━┷━━━━┷━━━┷━━━┷━━━┷━━━┷━━━┛
藤原:おお、いいねぇ。それじゃあ、問題を出してよ。
佳代:ハイ、上の表で、支払うべき金額の金種を計算するにはどうしたら
   いいでしょう?みなさんも一緒に考えてくださいね。

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

○ 登場人物紹介

・藤原清盛:塾の先生で,このマガジンの指導役。パソコン暦10年。

・大場佳代:藤原先生の生徒で,パソコン暦1年。

・山形三重:佳代の同級生で,パソコン暦6ヶ月。藤原先生のいとこ。

※ このマガジンは,マイクロソフトのエクセル97,2000のWindows版
  のみを扱っています。

----------------------------------------------------------------------
■■ 各教科書完全対応の学習を5教科900円で受講できます。
■■
完全個別対応の学習サイトをご紹介します。費用をかけずに基礎から学習!
お子さんの学力に合わせた個別学習ができます。ぜひ一度お立ち寄り下さい。
http://www.net-schooling.com/004/004-index.htm
----------------------------------------------------------------------
 ◆ 『MOUS上級試験必勝講座』開講中(ワード・エクセル) ◆
  ◆  MOUS上級試験を目指している方は、是非どうぞ! ◆
   ◆     詳しくは、巻末を見てください      ◆
  ◆  http://www.pat.hi-ho.ne.jp/hirosilk/premium.htm   ◆
----------------------------------------------------------------------
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・上級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:この問題は、C列とD列以降は、別に考えないとできないよ。
佳代:そうですね。C列だけだったらできるような気がします。
藤原:うん、まずは、C列について考えよう。これは、支払総額を10000
   で割って、余りを切り捨てればいい。
三重:すると、割り算をして整数部分を表す関数を使えばいいのですね。
藤原:そうだね。今回は、一番基本的な、INT 関数を使おう。
佳代:あっ、INT 関数って、整数部分以外は切捨てする関数ですね。
藤原:うん。=INT(数値)で、整数部分だけが表示される。もちろん、計算
   などでは、頻繁に使われる関数だ。
佳代:すると、C2のセルに、=INT(B2/$C$1) と入れればいいのですね。
┏━┳━━━━┯━━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
┃ ┃A   │B   │C  │D  │E  │F  │G  ┃
┣━╋━━━━┿━━━━┿━━━┿━━━┿━━━┿━━━┿━━━┫
┃1┃氏名  │支払金額│ 10000│ 5000│ 1000│  500│  100┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃2┃山根信二│ 386500│=INT(B2/$C$1) │   │   │   ┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
藤原:OK。それでいいよ。後は、C列は、フィルハンドルでコピーする。
   ここまでを第一段階としよう。
三重:ハイ、やってみます。
┏━┳━━━━┯━━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
┃ ┃A   │B   │C  │D  │E  │F  │G  ┃
┣━╋━━━━┿━━━━┿━━━┿━━━┿━━━┿━━━┿━━━┫
┃1┃氏名  │支払金額│ 10000│ 5000│ 1000│  500│  100┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃2┃山根信二│ 386500│  38│   │   │   │   ┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃3┃右田三郎│ 217600│  21│   │   │   │   ┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃4┃林 恵三│  16600│   1│   │   │   │   ┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃5┃守口 衛│ 128200│  12│   │   │   │   ┃
┣━╋━━━━┿━━━━┿━━━┿━━━┿━━━┿━━━┿━━━┫
┃6┃    │合計  │   │   │   │   │   ┃
┗━┻━━━━┷━━━━┷━━━┷━━━┷━━━┷━━━┷━━━┛
藤原:これで、10000円札の数は、できたよね。問題は、D列から後だ。
佳代:結構、難しそうですね。
藤原:うん、もちろん、一つ一つ設定していくのなら、それほど難しくは
   ない。でも、せっかくだから、工夫してみよう。
佳代:考え方としては、D2のセルは、支払金額から、1万円札で払った分
   を引いて、残りを同じように、INT関数で計算すれば出ます。
藤原:そうだね。でも、E列は、どうなるの?
佳代:そのときは、支払金額から、1万円札で払った分、5千円札で払っ
   た分を引いてから、同じ計算をします。
藤原:そのとおり。だから、一つ一つ慎重にやればできる。でも、一気に
   やる方法を教えよう。
三重:どうするのですか?
藤原:SUMPRODUCT関数を使う。
三重:あっ、前にやりましたね。確か、掛け合わせたものを足していくと
   いう。
藤原:そう、SUM関数が合計、PRODUCT関数が掛け算だから、掛け合わせた
   ものを合計するという便利な関数だ。(注意:154号参照)
佳代:なんとなくわかってきました。つまり、C列以降は、支払金額から
   それ以前の金種と枚数を掛け合わせたものを引いてから計算すれば
   いいわけですね。
藤原:そういうことだ。よく頭を整理してね。各列で、計算する方法は、
   D2と同じ考えだけど、一つずれるごとに、前提となる金額が変わっ
   てくるから、その部分をクリアしてから計算しなければならない。
三重:う〜ん、難しい。
藤原:そこで、答えを教えよう。これならば、1回作ってしまえば、ずっ
   と使えるし、上の表にない、50円や10円、5円や1円の欄を作っても
   大丈夫。
三重:教えてください。
藤原:それじゃあ、先に答えを示そう。D2のセルに、
   =INT(($B2-SUMPRODUCT($C$1:C$1,$C2:C2))/D$1)と入れる。
佳代:えー、何ですか、これは?
藤原:「$」のついている位置をよく見るんだよ。
三重:ハイ、$ がついているところは、絶対参照ですから、コピーしたと
   きに変わりませんがついていないところは、相対的に変わります。
藤原:そう、この式を、D2に入れて、右側にコピーし、その状態で、下ま
   でコピーする。すると魔法のように、すべてがピタリとあってしま
   うんだ。
佳代:確かに、支払金額は、B列ですから、Bにだけ「$」がついています。
藤原:そう、こういうのを複合参照と呼んでいる。絶対参照と相対参照を
   複合したものだ。$B2ならば、Bは変わらないけど数字は変わる。
三重:式の最後の「D$1」の部分は逆ですね。
藤原:そのとおり。列は変化するけど行は変化しない。
三重:ちょっとわかりにくいですねぇ。
藤原:だから、今回の問題は、とにかく、同じ物を作ってみて、各セルに、
   どのような式が入っているかを確かめた方がわかりやすい。一つ一
   つ見てほしい。特に、SUMPRODUCT関数のかっこの中をね。
三重:本当です。すごい、きちんと、手前までの、金種と枚数が掛け算さ
   れるように、セル範囲が変化しています。
藤原:うん。このように、複合参照を作れば、一気にコピーすることがで
   きるけど、かなり頭を使うから、もう少し簡単なものを作って練習
   してほしい。自在に使えると応用範囲が広がるからね。
三重:そうですね。最後に一番下の合計は、普通に、SUM 関数で大丈夫で
   すね。
藤原:もちろんだよ。
佳代:わかりました。簡単なようで、結構難しい問題でした。みなさんも、
   是非、試してみてください。それでは、今日はこの辺で。

※ SUMPRODUCT関数については、154号を参照してください。
  こちら http://www.pat.hi-ho.ne.jp/hirosilk/exb151.htm#154

--(補足解説)-------------------------------------------------------

【完成図】
┏━┳━━━━┯━━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
┃ ┃A   │B   │C  │D  │E  │F  │G  ┃
┣━╋━━━━┿━━━━┿━━━┿━━━┿━━━┿━━━┿━━━┫
┃1┃氏名  │支払金額│ 10000│ 5000│ 1000│  500│  100┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃2┃山根信二│ 386500│  38│   1│   1│   1│   0┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃3┃右田三郎│ 217600│  21│   1│   2│   1│   1┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃4┃林 恵三│  16600│   1│   1│   1│   1│   1┃
┠─╂────┼────┼───┼───┼───┼───┼───┨
┃5┃守口 衛│ 128200│  12│   1│   3│   0│   2┃
┣━╋━━━━┿━━━━┿━━━┿━━━┿━━━┿━━━┿━━━┫
┃6┃    │合計  │  72│   4│   7│   3│   4┃
┗━┻━━━━┷━━━━┷━━━┷━━━┷━━━┷━━━┷━━━┛
【入力されている式】

 ・C1 =INT(B2/$C$1)

    C列は、問題ないでしょう。そのまま下へオートフィルでコピー。

 ・D1 =INT(($B2-SUMPRODUCT($C$1:C$1,$C2:C2))/D$1)

    D1をきちんと入力して、オートフィルでコピーすると、下のよう
    になります。

 ・E1 =INT(($B2-SUMPRODUCT($C$1:D$1,$C2:D2))/E$1)
 ・F1 =INT(($B2-SUMPRODUCT($C$1:E$1,$C2:E2))/F$1)
 ・G1 =INT(($B2-SUMPRODUCT($C$1:F$1,$C2:F2))/G$1)

    SUMPRODUCTの範囲が、徐々に広がっているのがわかると思います。

 ★ 絶対参照(例:$C$1)→ コピーしても変化しない。

 ★ 複合参照

  アルファベットの上だけ「$」(例:$B2)→ 数字だけ変化する。

  数字の上だけ「$」(例:D$1)→ アルファベットだけ変化する。

 ★ 相対参照(例:A1)→ すべて、相対的に変化する。

    この違いを、把握しておいてください。


★ エクセルの小技へ ★ ★ TOPのページへ ★ ★ 次へ(171〜175) ★