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

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

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

◆ 今日の問題 「指定した区分に合致するものだけ色を変えるには」

三重:先生、例えば、下の表のように、男とか女と指定したら、名前の部
   分の色が変わるようにはできないのですか?

   ┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
   ┃ ┃A   │B   │C   │D   │E   ┃
   ┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
   ┃1┃氏名  │性別  │    │性別  │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃2┃大場佳代│女   │    │男   │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃3┃山田孝雄│男   │    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃4┃山形三重│女   │    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃5┃町田聖子│女   │    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃6┃早久進 │男   │    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃7┃岡誠人 │男   │    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃8┃篠田玲子│女   │    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃9┃西惰眠 │男   │    │    │    ┃
   ┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛

藤原:つまり、この表でいうと、D2のセルに、男とか女と入れることに
   よって男性なり女性なりの名前の色を変えたいんだね。
三重:そうです。
佳代:なるほど、面白そうね。条件を指定して変化させるのね。
三重:そうよ。いろいろやってみたけど、うまくいかないの。
藤原:わかったよ。それじゃあ、今日は、それを問題にしよう。
佳代:わかりました。それでは問題です。上の表のD2に男と入れたら、
   A列の氏名の欄の男性の名前に、女と入れたら女性の名前に色がつ
   くようにするにはどうしたらいいでしょう?みなさんも、一緒に考
   えてくださいね。

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

○ 登場人物紹介

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

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

・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。

※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
  のみを扱っています。(たいていの場合、97でも使えます)

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

藤原:これも、よくよく考えると似たようなやつをやったことがあるよ。
三重:そうでしたか?
藤原:もちろん、条件付書式を使う。
三重:それはわかっています。でも、どうやるのですか?
藤原:まずは、A列の名前の部分を範囲指定しよう。
三重:ハイ。A2からA9までを範囲指定しました。
藤原:その段階で、[書式]の[条件付書式]をクリックする。
佳代:この辺は、予想どおりです。
藤原:うん。基本どおりだね。そして、[セルの値が]を[数式が]に変
   える。
三重:ハイ、変えました。
藤原:そして、右側のボックスに =B2=$D$2 と入れればいい。
佳代:つまり、B2のセルとD2のセルが等しい場合に書式が変わるというこ
   とですね。
藤原:そういうこと。後は、[書式]ボタンをクリックして、色を変えれ
   ばいい。
三重:ちょっとやってみます。あっ!女と入れたら、女性の名前だけ色が
   つきました。
佳代:電気がついたって感じね。
三重:そうね。それじゃあ、男もやってみます。あっ、うまくいきました。
   思ったより簡単ですね。
藤原:うん。前にもちょっとやった、[数式が]をうまく使えるようにな
   ると、条件付書式は、応用範囲が広がるよね。いろいろ試して、使
   えるようにしてね。
佳代:わかりました。本当に応用範囲が広そうです。みなさんも、是非、
   試してみてください。それでは、今日は、この辺で。

 -----------------------------------------------------------------
 <まとめ> 今回の問題に対する手順のみを示します
 -----------------------------------------------------------------

   セルA2からA9までを範囲指定
   
   [書式]メニューの[条件付書式]をクリック
  
   [セルの値が]を[数式が]に変える(右側の▼をクリックして)
  
   右側のボックスに =B2=$D$2 と入力
   
   ダイアログボックス内の[書式]ボタンをクリック
   
   「色」から好きな色を選ぶ
  
   順次、OK、OKをクリックして完了

 -----------------------------------------------------------------
 <補足> 
 -----------------------------------------------------------------

   D2のセルは、固定しますので、絶対参照で行います。
   
   男女の欄は、直接入力してもいいのですが、面倒ですので、クリ
   ックで選べるようにしましょう。
   
    D2のセルを選択
    
    [データ]−[入力規則]の「設定」を開く
   
    「入力値の種類」を「リスト」にする
   
    「元の値」のボックスに「男,女」と入力(区切りは半角のコンマ)
   
   これで、D2のセルを選択すると、右側に▼が出ますので、これ
   をクリックすることにより、男女が選べます。


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

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

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

◆ 今日の問題 「データ数の多いものから順に並べるには」

佳代:先生、今日は、読者の方の質問からお願いします。
藤原:わかったよ。どんな質問?
佳代:ハイ、ちょっと珍しい質問です。並べ替えの問題なのですが、とに
   かくデータの多いものから順に並ぶようにしたいのことです。
三重:データの多いものから順に並ぶ?
佳代:そうよ。ちょっとわかりづらいけど、下の表みたいにするのよ。

           【図1】             【図2】
 ┏━┳━━━━┯━━━━┯━   ┏━┳━━━━┯━━━━┯━
 ┃ ┃A   │B   │C   ┃ ┃A   │B   │C
 ┣━╋━━━━┿━━━━┿━   ┣━╋━━━━┿━━━━┿━
 ┃1┃トマト │    │    ┃1┃りんご │    │ 
 ┠─╂────┼────┼─   ┠─╂────┼────┼─
 ┃2┃りんご │    │    ┃2┃りんご │    │ 
 ┠─╂────┼────┼─   ┠─╂────┼────┼─
 ┃3┃みかん │    │    ┃3┃りんご │    │ 
 ┠─╂────┼────┼─   ┠─╂────┼────┼─
 ┃4┃バナナ │    │  → ┃4┃りんご │    │ 
 ┠─╂────┼────┼─   ┠─╂────┼────┼─
 ┃5┃りんご │    │    ┃5┃バナナ │    │ 
 ┠─╂────┼────┼─   ┠─╂────┼────┼─
 ┃6┃バナナ │    │    ┃6┃バナナ │    │ 
 ┠─╂────┼────┼─   ┠─╂────┼────┼─
 ┃7┃りんご │    │    ┃7┃みかん │    │ 
 ┠─╂────┼────┼─   ┠─╂────┼────┼─
 ┃8┃みかん │    │    ┃8┃みかん │    │ 
 ┠─╂────┼────┼─   ┠─╂────┼────┼─
 ┃9┃りんご │    │    ┃9┃トマト │    │ 
 ┗━┻━━━━┷━━━━┷━   ┗━┻━━━━┷━━━━┷━

藤原:なるほど、データ数の多いものから順に並べるということだね。
佳代:そういうことです。
三重:図1を図2のようにすればいいのね。
佳代:そうよ。
三重:みなさんも一緒に考えてくださいね!

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

○ 登場人物紹介

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

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

・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。

※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
  のみを扱っています。(たいていの場合、97でも使えます)

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

藤原:確かに珍しい質問だね。
佳代:本当です。こういう並べ替えは、考えたことがありませんでした。
藤原:この表だけではわからないけど、他にもいろいろなデータが入って
   いる場合、何か使い道もあるかもしれないので、勉強しておこう。
佳代:お願いします。
藤原:まず、データの数を数えなければならないよね。
三重:そうですね。数えないと並べ替えの基準がありません。
藤原:そこで、COUNTIF 関数を使ってデータ数を調べる。
佳代:すると、こんな感じですか?

              【図3】
   ┏━┳━━━━┯━━━━┯━
   ┃ ┃A   │B   │C
   ┣━╋━━━━┿━━━━┿━
   ┃1┃トマト │=COUNTIF(A:A,A1)
   ┠─╂────┼────╋ ← フィルハンドルでコピー
   ┃2┃りんご │    ↓ (黒い十字架が出た時点でドラッグ。
   ┠─╂────┼────↓  この場合は左の列にデータがある
   ┃3┃みかん │    ↓  ので黒の十字架をダブルクリック
  〜〜〜〜〜〜〜〜〜〜〜〜〜↓  すると一瞬でコピーされます)
  〜〜〜〜〜〜〜〜〜〜〜〜〜

藤原:そのとおり。どの列でもいいけど、作業用のセルを作り、そこに、
   COUNTIF 関数を入れて、データ数を表示させるんだ。
三重:やってみます。

              【図4】
   ┏━┳━━━━┯━━━━┯━
   ┃ ┃A   │B   │C
   ┣━╋━━━━┿━━━━┿━
   ┃1┃トマト │    1│ 
   ┠─╂────┼────┼─
   ┃2┃りんご │    4│ 
   ┠─╂────┼────┼─
   ┃3┃みかん │    2│ 
   ┠─╂────┼────┼─
   ┃4┃バナナ │    2│ 
   ┠─╂────┼────┼─
   ┃5┃りんご │    4│ 
   ┠─╂────┼────┼─
   ┃6┃バナナ │    2│ 
   ┠─╂────┼────┼─
   ┃7┃りんご │    4│ 
   ┠─╂────┼────┼─
   ┃8┃みかん │    2│ 
   ┠─╂────┼────┼─
   ┃9┃りんご │    4│ 
   ┗━┻━━━━┷━━━━┷━

藤原:後は、これを並べ替えればいい。ただし、単純な並べ替えではダメ。
三重:どうしてですか?
藤原:単に、ツールバーの[並べ替え]を使うと、この場合、みかんとバ
   ナナは、同じ2個だから、うまく並べ替えられない。
佳代:そうですね。数だけに頼ると、4、2、1しか判断できません。
藤原:そこで、[データ]メニューの[並べ替え]を使う。
三重:ああ、あのごちゃごちゃしたやつですね。
藤原:そう。図4の段階で、データの入っている任意のセルを選択する。
   そして、[データ]メニューの[並べ替え]をクリック。
三重:[並べ替え]のダイアログボックスが出ました。
藤原:「最優先されるキー」を「列B」として「降順」を選ぶ。
三重:ハイ。選びました。
藤原:「2番目に優先されるキー」を「列A」とする。これは、昇順、降
   順、どちらでもいい。ここでは、「昇順」のままでやろう。
三重:ハイ、あっ!並べ替えられました。

              【図5】
   ┏━┳━━━━┯━━━━┯━
   ┃ ┃A   │B   │C
   ┣━╋━━━━┿━━━━┿━
   ┃1┃りんご │    4│ 
   ┠─╂────┼────┼─
   ┃2┃りんご │    4│ 
   ┠─╂────┼────┼─
   ┃3┃りんご │    4│ 
   ┠─╂────┼────┼─
   ┃4┃りんご │    4│ 
   ┠─╂────┼────┼─
   ┃5┃バナナ │    2│ 
   ┠─╂────┼────┼─
   ┃6┃バナナ │    2│ 
   ┠─╂────┼────┼─
   ┃7┃みかん │    2│ 
   ┠─╂────┼────┼─
   ┃8┃みかん │    2│ 
   ┠─╂────┼────┼─
   ┃9┃トマト │    1│ 
   ┗━┻━━━━┷━━━━┷━

藤原:このように、B列だけでなく、A列にも条件を入れてあげないと、
   うまくいかない。並べ替えは、まだまだ奥が深いけど、とりあえず、
   この程度までは、自在に使えるようにしてほしいものだね。
佳代:わかりました。みなさんも、是非、やってみてください。それでは、
   今日は、この辺で。

 -----------------------------------------------------------------
 <まとめ> 今回の問題に対する手順のみを示します
 -----------------------------------------------------------------

  (図1の状態で)セルA2に =COUNTIF(A:A,A1) と入力
  
   フィルハンドルでコピー(図3を参考にしてください)
  
  (図4の状態で)B列のデータが入っている任意のセルにカーソル
   を置き[データ]メニューの[並べ替え]をクリック
  
  [並べ替え]のダイアログボックスで、「最優先されるキー」を
  「列B」として「降順」を選ぶ
  
  「2番目に優先されるキー」を「列A」とし、[OK]

 -----------------------------------------------------------------
 <補足> 
 -----------------------------------------------------------------

  =COUNTIF(A:A,A1) の意味は、A列に入っているデータの中から、
  A1のセルの内容と同じ物の数を数えるということです。列全体を範
  囲としたいときには、「A:A」や「B:B」のように表します。

  並べ替えをするときは、必ず、データの入っているセルを選択して
  ください。その際、最優先される列のセルを選択しておけば、自動
  的に、その列が最優先されるキーの候補として表示されます。

  一番上の行がタイトル行のときは[並べ替え]ダイアログボックス
  で、「範囲の先頭行」を「タイトル行」に設定してください。そう
  すれば、列A、列Bという形ではなく、タイトル行のラベルで並べ
  替えることができます。

 -----------------------------------------------------------------
 <参考> 今回出てきた技に関連したものを示します
 -----------------------------------------------------------------

 【COUNTIF関数関係】 =COUNTIF(範囲,検索条件)
  
  実用的な関数ですのでいろいろなパターンをマスターしましょう。
  
   http://www.pat.hi-ho.ne.jp/hirosilk/exb011.htm#14
   http://www.pat.hi-ho.ne.jp/hirosilk/exb061.htm#65
   http://www.pat.hi-ho.ne.jp/hirosilk/exb126.htm#127
   http://www.pat.hi-ho.ne.jp/hirosilk/exb166.htm
   http://www.pat.hi-ho.ne.jp/hirosilk/exb206.htm#207
   http://www.pat.hi-ho.ne.jp/hirosilk/exb226.htm#229
   http://www.pat.hi-ho.ne.jp/hirosilk/exb236.htm#238
   http://www.pat.hi-ho.ne.jp/hirosilk/exb236.htm#240


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

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

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

◆ 今日の問題 「同じシートにある表を別々に印刷するには」

三重:先生、と、と、友達が・・・。
藤原:どうしたの? 三重ちゃん、そんなにあわてて。
三重:実は、友達に表作りを頼んでおいたのですが、一つのシートに全部
   作っちゃったんです。別々に印刷する予定だったのに・・・。
佳代:ああ、郁代ちゃんに頼んだやつね。
三重:そうなのよ。あれほど、別のシートにって強調したのに・・・。
藤原:どのぐらい作ったの?
三重:10個です!
佳代:切り取って別シートに貼り付けるしかないわね。
三重:そうね。でも、何か方法がないかと思って。
藤原:なるほど、それなら、いい方法があるよ。
三重:えっ!あるのですか?
藤原:それじゃあ、今日は、それを問題にしよう。ただし、表と表の間に
   区切りがあることが条件だ。
佳代:わかりました。それでは問題です。1つのシートに、作られた複数
   の表を別々に印刷するにはどうしたらいいでしょう?ただし、表と
   表の間には、空白があるものとします。
三重:みなさんも一緒に考えてくださいね!

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

○ 登場人物紹介

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

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

・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。

※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
  のみを扱っています。(たいていの場合、97でも使えます)

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

藤原:今回のケースのように、10個も作ることは少ないと思うけど、2つ
   3つ作ることは多いと思う。
三重:そうですね。そのぐらいなら、わたしもあります。
藤原:そこで、例として、下のような表で考えてみよう。

   ┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
   ┃ ┃A   │B   │C   │D   │E   ┃
   ┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
   ┃1┃種類  │単価  │数量  │合計  │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃2┃りんご │   60│   10│   600│    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃3┃みかん │   80│   20│  1600│    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃4┃トマト │   40│   30│  1200│    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃5┃    │    │    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃6┃種目  │人数  │    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃7┃サッカー│   56│    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃8┃野球  │   44│    │    │    ┃
   ┠─╂────┼────┼────┼────┼────┨
   ┃9┃水泳  │   21│    │    │    ┃
   ┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛

佳代:全然違う表ですね。
藤原:そうだね。現実にはありえないと思うけど、それはそれとして、こ
   のように、1つのシートに複数の表がある場合、どうしたらいいか
   わかればいいわけだよね。
三重:そのとおりです。
藤原:まず、上の表を選択しよう。
三重:ハイ、しました。
藤原:次に、下の表も選択する。
三重:ということは、Ctrlキーを押したまま選択するのですね。
藤原:そのとおり。まずは、普通に、A1からD4まで選択する。そして、
   Ctrlキーを押しながら、A6からB9を選択すればいい。
三重:ハイ。基本ですね。離れた範囲を選択する場合の。
藤原:そうだね。そして、[ファイル]メニューの[印刷範囲]から[印
   刷範囲の設定]をクリックする。
三重:ハイ。しました。
藤原:これでOK。この状態で、印刷プレビューを見てごらん。
三重:印刷プレビューですね。あっ!一つの表だけが表示されています。
藤原:それじゃあ、[次ページ]のボタンをクリックしてごらん。
三重:ハイ。あっ、もう一つの表が表示されています。
佳代:つまり、印刷範囲の部分が、別ページになったということですね。
藤原:そういうこと。このようなケースは、少なくないだろう。そんなと
   きは、この技を使うといい。
佳代:よかったね、三重。この方法でやれば、いちいち、別シートに貼り
   付けしなくてすむわね。
三重:ホント、助かりました。
佳代:ちょっとした技ですが、結構役に立ちそうです。みなさんも、是非、
   使ってください。それでは、今日は、この辺で。

 -----------------------------------------------------------------
 <まとめ> 今回の問題に対する手順のみを示します
 -----------------------------------------------------------------

  1番目の表を選択
  
  Ctrlを押しながら、2番目の表を選択(以後、繰り返す)
  
  [ファイル]メニューの[印刷範囲]から[印刷範囲の設定]を
  クリック
  
  印刷プレビューで確認して、印刷する

 -----------------------------------------------------------------
 <補足> 
 -----------------------------------------------------------------

  表に限らず、特定の列などを印刷したいときや、セル別でも可能で
  す。要は、選択範囲別に考えればいいのです。いろいろ試してみて
  ください。


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

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

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

◆ 今日の問題「バラバラに入力された生年月日を日付データにするには」

三重:先生、久しぶりに父からの質問です。
藤原:おう、久々だね。どんな質問?
三重:ハイ。下のように生年月日を別々に入力している名簿があります。
   これを、きちんとつなげたいのです。
                             【図1】
┏━┳━━━━┯━━━━┯━━┯━━┯━━━━━━━━┯━━━━┓
┃ ┃A   │B   │C │D │E       │F   ┃
┣━╋━━━━┿━━━━┿━━┿━━┿━━━━━━━━┿━━━━┫
┃1┃氏名  │西暦  │月 │日 │        │    ┃
┠─╂────┼────┼──┼──┼────────┼────┨
┃2┃幸村雅彦│  1940│ 10│ 20│        │    ┃
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

佳代:単に、B2&"年"&C2&"月"&D2&"日" って感じでつなげるだけじゃダメ
   なの?
三重:それが、ダメなのよ。前に、自動的に年齢を表示させる方法を教え
   ちゃったから、下のように、E列で生年月日を、F列で年齢を入れ
   るようにしたいって。
                             【図2】
┏━┳━━━━┯━━━━┯━━┯━━┯━━━━━━━━┯━━━━┓
┃ ┃A   │B   │C │D │E       │F   ┃
┣━╋━━━━┿━━━━┿━━┿━━┿━━━━━━━━┿━━━━┫
┃1┃氏名  │西暦  │月 │日 │生年月日    │年齢  ┃
┠─╂────┼────┼──┼──┼────────┼────┨
┃2┃幸村雅彦│  1940│ 10│ 20│1940年10月20日 │   62┃
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

藤原:なるほど、前に(121号)やったものも使うわけだね。
三重:そういうことです。
藤原:それじゃあ、自動的に年齢が表示されるものも含めて問題にしよう。
   復習にもなるから。
佳代:わかりました。それでは問題です。生年月日が、図1のようにすで
   に、西暦、月、日に分けて入れられているとき、図2のように、E
   列にまとめるにはどうしたらいいでしょう?尚、F列には、現在の
   年齢が自動で表示されるようにしますので、文字列の連結ではなく、
   日付データになるように設定してください。
三重:みなさんも一緒に考えてくださいね。

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

○ 登場人物紹介

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

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

・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。

※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
  のみを扱っています。(たいていの場合、97でも使えます)

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

藤原:やさしいけどややこしいという感じの問題かな?
三重:そうですねぇ。年齢の計算はバッチリなのですが・・・。
佳代:日付データにするには、DATE関数を使えばいいわけですよね。
藤原:そのとおり。
三重:DATE関数?年齢を計算するにはDATEDIF関数よね。
佳代:そうよ。
三重:やっぱり、少しややこしいです。
藤原:そうだね。そこで頭を整理してみよう。まずは、DATE関数から。こ
   の関数は、数値を日付に変換する関数だ。
佳代:ハイ。このメルマガでははじめてですが、私は知っています。
三重:うっ!さすが、佳代・・・。
藤原:それじゃあ、佳代ちゃん。説明してごらん。
佳代:ハイ。この関数は、 =DATE(年,月,日)で、単なる数値が、日付デー
   タに変わります。ですから、E1のセルに、下のように入力すれば、
   日付データに変わります。

┏━┳━━━━┯━━━━┯━━┯━━┯━━━━━━━━┯━━━━┓
┃ ┃A   │B   │C │D │E       │F   ┃
┣━╋━━━━┿━━━━┿━━┿━━┿━━━━━━━━┿━━━━┫
┃1┃氏名  │西暦  │月 │日 │生年月日    │年齢  ┃
┠─╂────┼────┼──┼──┼────────┼────┨
┃2┃幸村雅彦│  1940│ 10│ 20│=DATE(B2,C2,D2) │    ┃
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
                      ↓
                    1940年10月20日

藤原:そうだね。日付の書式は、どのように出てくるかわからないけど、
   とにかく日付データが出ることは確かだ。
佳代:そうですね。場合によっては、1940/10/20 と出るかもしれません。
三重:そういう時は、Ctrl+1を押して、セルの書式設定で、表示形式を
   変えればいいよね。
藤原:そうだね。[書式]メニューの[セル]でも同じこと。そこの表示
   形式を好みのものに変えればいい。どちらにしても、これで、年齢
   の計算もできるね。
三重:ハイ。これは、わたしにやらせてください。こんな感じです。

┏━┳━━━━┯━━━━┯━━┯━━┯━━━━━━━━┯━━━━┓
┃ ┃A   │B   │C │D │E       │F   ┃
┣━╋━━━━┿━━━━┿━━┿━━┿━━━━━━━━┿━━━━┫
┃1┃氏名  │西暦  │月 │日 │生年月日    │年齢  ┃
┠─╂────┼────┼──┼──┼────────┼────┨
┃2┃幸村雅彦│  1940│ 10│ 20│1940年10月20日 │    ┃
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜↑〜〜〜
                     =DATEDIF(E2,TODAY(),"Y")

藤原:よろしい。公式は、=DATEDIF("開始日","終了日","単位")だったよ
   ね。
三重:ハイ。単位は、D が、DAYのことで「日」M が、MONTHのことで「月」
   Y が、YEARのことで「年」です。今回は、年齢を入れたいのですか
   ら、当然、単位は、Y です。
藤原:うん、いいね。復習だけど、よくできているよ。今回のメインは、
   数値を日付データにすることだけど、うまく応用すると使えるかも
   しれないよ。
佳代:わかりました。研究してみます。みなさんも、是非、うまく使って
   くださいね。それでは、今日は、この辺で。

 -----------------------------------------------------------------
 <まとめ> 今回の問題に対する手順のみを示します
 -----------------------------------------------------------------

  図1で、セルE2を選択し、=DATE(B2,C2,D2)と入力
  
  セルF2を選択して、=DATEDIF(E2,TODAY(),"Y")と入力

 -----------------------------------------------------------------
 <補足> 
 -----------------------------------------------------------------

  DATEDIF関数は、関数貼り付け(挿入)ボックスにありませんので、手
  入力してください。

  単に、見た目だけつなげればいいのであれば、問題文で、佳代ちゃん
  が言っているように、B2&"年"&C2&"月"&D2&"日" でもできます。

 -----------------------------------------------------------------
 <参考> 今回出てきた技に関連したものを示します
 -----------------------------------------------------------------

 【DATEDIF関数】関係
 
   http://www.pat.hi-ho.ne.jp/hirosilk/exb031.htm#34
   http://www.pat.hi-ho.ne.jp/hirosilk/exb121.htm


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

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

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

◆ 今日の問題「くっつけて入力された数値を日付データに変えるには」

三重:先生、前回は、別々に入力された生年月日のデータをくっつけて、
   日付データにしましたね。
藤原:そうだったね。
三重:逆にくっつけて入力されたものを日付データにできませんか?
佳代:つまり、一つのセルに、「19870617」のように入力されているいう
   ことね。
三重:そうよ。それを日付のデータにしたというわけ。
藤原:わかったよ。それじゃあ、今日は、それを問題にしよう。
佳代:それでは問題です。下の図のようにB列に、生年月日が、連続した
   8桁の数字で入っているとします。その数字をC列に、日付データ
   として表示させるにはどうしたらいいでしょう。

   ┏━┳━━━━┯━━━━┯━━━━━━━┯━━━━┓
   ┃ ┃A   │B   │C      │E   ┃
   ┣━╋━━━━┿━━━━┿━━━━━━━┿━━━━┫
   ┃1┃辻本望美│19870617│1987年6月17日 │    ┃
   ┠─╂────┼────┼───────┼────┨
   〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

三重:みなさんも一緒に考えてくださいね。

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

○ 登場人物紹介

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

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

・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。

※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
  のみを扱っています。(たいていの場合、97でも使えます)

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

藤原:今回は、文字列操作関数を使って、一つのセルの文字列を切り出す
   形になるね。
三重:やっぱり、DATE関数は使うのですか?
藤原:もちろんだよ。そうしないと、日付データにならないから。
佳代:つまり、=DATE(年,月,日) の「年」「月」「日」の部分に該当する
   数字を切り出していけばいいのですね。
藤原:そういうこと。方法は一つではないけど、今回は、せっかくだから
   文字列を切り出す3つの関数をすべて使ってやることにするよ。
三重:えーっと、過去にやったことはありましたっけ?
藤原:たぶん、なかったと思う。だから、3つとも新鮮かも。
佳代:そうですね。それじゃあ、その3つを教えてください。
藤原:まずは、文字列の左端から切り出す関数だ。LEFT関数という。
三重:レフトって左ですよね。ということは、右から切り出す RIGHT関数
   もあるのですか?
藤原:そのとおり。この二つは兄弟みたいなもので、切り出す方向が違う
   だけだ。公式は、
   
    =LEFT(セル番地,文字数)  =RIGHT(セル番地,文字数) だ。

三重:なるほど、これを使うと、文字数の分が切り出されるのですね。
藤原:そういうこと。
佳代:すると、真ん中はどうするのですか?
藤原:こちらは、MID 関数を使う。
三重:ミッドですか?
藤原:うん。公式は、=MID(セル番地,開始位置,文字数)だ。
佳代:なるほど、確かに、LEFT や RIGHT と違って開始位置がわからない
   と切り出せませんね。
藤原:そうなんだ。LEFT なら左端、RIGHTなら右端という基準があるけど
   MID にはない。だから、開始位置を指定しなければならないんだ。
三重:それじゃあ、とりあえず、一つずつやってみます。LEFTとRIGHT で
   やってみます。=LEFT(B1,4) =RIGHT(B1,2)でいいのですね。
藤原:そのとおり。
佳代:真ん中はわたしがやります。=MID(B1,5,2)でOKですか?
藤原:もちろん、OKだよ。これで、3つが出揃ったね。それじゃあ、そ
   れをDATE関数に入れてみよう。
三重:ハイ、任せてください。C1のセルに下のように入力すればできあ
   がりです。

   ┏━┳━━━━┯━━━━┯━━━━━━━┯━━━━┓
   ┃ ┃A   │B   │C      │E   ┃
   ┣━╋━━━━┿━━━━┿━━━━━━━┿━━━━┫
   ┃1┃辻本望美│19870617│       │    ┃
   ┠─╂────┼────┼───↑───┼────┨
         =DATE(LEFT(B1,4),MID(B1,5,2),RIGHT(B1,2))

藤原:正解。言葉で言うと、B1のセルに入っている数値を左から4文字
   切り出して、「年」に、5番目から2文字分を切り出して「月」に
   右から2文字分切り出して「日」にするということ。これで、数値
   が、日付データになった。
三重:セルの中の文字が自由に切り出せるなんて便利ですね。
藤原:そうだね。本来ならば、こんなことしなくてすむように作ってほし
   いのだけど、すでにあるものを利用するときは、これらの関数を使
   って効率よく処理してほしい。
佳代:わかりました。文字列操作関数は、人からもらったファイルなどを
   直すときにも使えますね。いろいろ利用法があると思います。みな
   さんも、是非、工夫して使ってください。それでは、今日は、この
   辺で。

 -----------------------------------------------------------------
 <まとめ> 今回の問題に対する手順のみを示します
 -----------------------------------------------------------------

  セルC1を選択
  
  =DATE(LEFT(B1,4),MID(B1,5,2),RIGHT(B1,2))と入力

 -----------------------------------------------------------------
 <補足> 
 -----------------------------------------------------------------

 ・LEFT関数、MID関数、RIGHT関数は、数字だけでなく文字列を切り出す
  場合も使えます。今回は、DATE関数と複合して使いましたが、もちろ
  ん、各々、単独でも使えます。
  
 ・C1に表示される日付は、1997/6/17 など、セルに設定してある表示
  形式によって異なります。表示形式を変えたいときは、下の手順でど
  うぞ。
  
   [書式]−[セル]で、[セルの書式設定]のダイアログボッ
   クスを出す(Ctrl+1でも出せます)
   
   「表示形式」のタブを開き、「分類」を「日付」にして、好み
   の書式を選ぶ


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