E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 251
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「○○ではじまるものに条件付書式をつけるには」
佳代:先生、今日は、読者の方の質問からお願いします
藤原:OK
佳代:それでは、読みます。「こんにちは。いつも楽しく読ませていただ
いています。条件付書式について質問があるのですが、たとえば、
住所が入っているセルがあるとして、大阪府ではじまるセルに書式
を設定したい場合どうすればよろしいでしょうか?」
三重:はじまるというところがミソね。
藤原:そうだね。案外、苦戦するかも。
佳代:ハイ、読者の方も、「条件に『大阪府*』と入れてみたり、いろいろ
試してみましたが、無理でした。」と言っています。
藤原:それじゃあ、そのまま問題にしよう。
佳代:わかりました。それでは問題です。大阪府ではじまるセルに条件付
書式をつけるにはどうしたらいいでしょう?みなさんも一緒に考え
てくださいね。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン歴12年。
・大場佳代:藤原先生の生徒で,パソコン歴3年。
・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。
※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
のみを扱っています。(たいていの場合、97でも使えます)
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:条件付書式は、これまでも何回もやったよね。
三重:ハイ、でも、いろいろなパターンがあるものですね。
藤原:そうだね。さて、どうしたらいいだろう?
佳代:ワイルドカードはうまく行かないのですね。
藤原:うん。例えば、下の表で考えてみよう。例えば、B2のセルに、
「数式が」「=B2="大阪府*"」などとしてもダメだ。
┏━┳━━━━┯━━━━━━━━━━━━━━━━━━━━┓
┃ ┃A │B ┃
┣━╋━━━━┿━━━━━━━━━━━━━━━━━━━━┫
┃1┃氏名 │住所 ┃
┠─╂────┼────────────────────┨
┃2┃西本忠志│大阪府梅田・・・・・・・・・・・・・・ ┃
┠─╂────┼────────────────────┨
┃3┃下重道夫│東京都世田谷区・・・・・・・・・・・・ ┃
┠─╂────┼────────────────────┨
┃4┃中井仙太│大阪府大阪市・・・・・・・・・・・・・ ┃
┠─╂────┼────────────────────┨
┃5┃田中博康│愛知県名古屋市・・・・・・・・・・・・ ┃
┠─╂────┼────────────────────┨
┃6┃藤井元雄│北海道札幌市・・・・・・・・・・・・・ ┃
┗━┻━━━━┷━━━━━━━━━━━━━━━━━━━━┛
佳代:すると、どうしたらいいのですか?
藤原:そうだね。1つの方法として、完全に一致するように式を立てれば
いい。
三重:えっ、どうやって完全一致させるのですか?
藤原:この場合、大阪府ではじまるわけだから、左から3つだけ一致すれ
ばいいわけだろ。
佳代:あっ、わかりました。LEFT関数を使うのですね。
藤原:そのとおり。
三重:そっか、わかりました。つまり、B2のセルだけでいうと、条件のと
ころに「数式が」「=LEFT(B2,3)="大阪府"」とやればいいのですね。
藤原:そのとおり。LEFT関数は、左から文字を切り出す関数だったよね。
佳代:ハイ、この場合は、B2のセルから3文字取り出したものが、大阪府
と等しいということです。
藤原:そう。これならば、大丈夫。だから、○○ではじまる文字と一致さ
せたいときは、これを応用すればいい。
佳代:わかりました。LEFT関数は、こんな場合でも使えるのですね。みな
さんも是非利用してください。それでは、今日は、この辺で。
-----------------------------------------------------------------
<まとめ> 今回の問題に対する手順のみを示します
-----------------------------------------------------------------
設定する範囲を選択
[書式]−[条件付書式]を開く
「条件」の「セルの値」を右の▼をクリックして「数式が」にする
右側のボックスに「=LEFT(B2,3)="大阪府"」と入力
(B2がアクティブセルの場合。アクティブセルが別の場合は、その
セル番地を入れてください)
ダイアログボックス内にある[書式]ボタンをクリック
任意の書式をつける
順次、OK、OKをクリックして完了
-----------------------------------------------------------------
<補足>
-----------------------------------------------------------------
・範囲指定した場合、白くなっているセルがアクティブセルです。こ
の場合、自身のセルが条件になりますから、入力するとき、そのセ
ル番地を入れます。
・先に、1つのセルに条件付書式をつけた場合は、書式のコピーで対
応してください。標準ツールバーにある「はけ」の形のアイコンを
使います。
例えば、範囲設定をせずに、B2のセルだけに条件付書式をつけてし
まった場合は、
B2のセルを選択
はけのアイコンをクリック
設定したい範囲になぞる
-----------------------------------------------------------------
<参考> 今回出てきた技に関連したものを示します
-----------------------------------------------------------------
【条件付書式関係】
http://www.pat.hi-ho.ne.jp/hirosilk/exb011.htm#12
http://www.pat.hi-ho.ne.jp/hirosilk/exb086.htm#88
http://www.pat.hi-ho.ne.jp/hirosilk/exb111.htm#113
http://www.pat.hi-ho.ne.jp/hirosilk/exb136.htm#138
http://www.pat.hi-ho.ne.jp/hirosilk/exb196.htm#200
http://www.pat.hi-ho.ne.jp/hirosilk/exb241.htm
http://www.pat.hi-ho.ne.jp/hirosilk/exb246.htm
【LEFT関数関係】
http://www.pat.hi-ho.ne.jp/hirosilk/exb241.htm#245
E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 252
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「間違えてしまった関数を変更するには」
三重:先生、大変です!
藤原:どうしたの、あわてて。
三重:わたし、何を勘違いしたのか、間違った関数をたくさん設定してし
まったのです。
佳代:すると、入れなおさなければならないの?
三重:そうなのよ。飛び飛びで数が多かったので、ついそっちに注意が行
っちゃって・・・。
藤原:それは大変だったね。それじゃあ、今日は、それを問題にしよう。
佳代:わかりました。それでは問題です。間違った関数を一気に直すには
どうしたらいいでしょう?みなさんも一緒に考えてくださいね。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン歴12年。
・大場佳代:藤原先生の生徒で,パソコン歴3年。
・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。
※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
のみを扱っています。(たいていの場合、97でも使えます)
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・初級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:これは、簡単、置換えすればいい。
三重:えっ?置換えですか?
藤原:そう。見た目は、数値が入っているけど、置換えの対象は、セルに
入っている値ではなく、数式バーに表示されている値なんだ。
佳代:つまり、数式は、数式で、結果として表されている値ではないとい
うことですね。
藤原:そういうこと。だから、例えば、MAXとMINを間違えた場合は、その
まま置換えてやればいい。
三重:なるほど簡単ですね。
藤原:そう。今日は、初級の問題だね。でも、一応、やり方を示すよ。
佳代:ハイ。それならば、わたしが説明します。まず、[編集]メニュー
から[置換]を選びます。そして 「検索する文字列」に「MAX」を
入れ、「置換後の文字列」に「MIN」を入れます。
三重:後は、[すべて置換]のボタンをクリックすればいいわけね。
藤原:そのとおり。ごく普通の置換えと同じ手順でいい。ただ、置換えの
対象になっているのが、数式バーに表示される値だということを覚
えておくといい。そうすれば、関数の文字列や、セル参照の文字列
なども置換えられることがわかるだろう。
佳代:わかりました。当たり前のことですが、気づいていない方もいるよ
うです。一度試してみましょう。それでは、今日は、この辺で。
E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 253
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「年代別の数を数えるには」
佳代:先生、今日も、読者の質問から出題してください。
藤原:わかったよ。
佳代:それでは、読みます。「私は病院で働いていて、エクセルでいろん
な統計を取っているのですが、最近、簡単そうでどうしてもできな
いことがあります。入院患者さん 200人分の年齢層を出したいので
すが、うまくいかず、結局、年齢だけを並べ替えて、20代が○人、
30代が○人・・・と手作業で数えています。何かよい方法はありま
せんか?」
藤原:なるほど、年代ね。
三重:は〜い、わたしたちは、十代で〜す♪
藤原:それじゃあ、問題を出そう。下のような表で、E列に年代別の数を
記してほしい。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃氏名 │年齢 │ │〜9歳 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃山中美枝│ 44│ │10代 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃3┃西田則之│ 35│ │20代 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃4┃永山文香│ 16│ │30代 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃5┃蟹江もや│ 82│ │40代 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃6┃草刈 剛│ 29│ │50代 │ ┃
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
┃97┃佐渡美雪│ 45│ │ │ ┃
┠─╂────┼────┼────┼────┼────┨
┃98┃橋本文洋│ 22│ │ │ ┃
┠─╂────┼────┼────┼────┼────┨
┃99┃高橋千里│ 9│ │ │ ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
佳代:わかりました。みなさんも一緒に考えてくださいね。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン歴12年。
・大場佳代:藤原先生の生徒で,パソコン歴3年。
・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。
※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
のみを扱っています。(たいていの場合、97でも使えます)
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:まず、10代って、何歳から何歳までかな?
三重:もちろん、10歳から19歳までです。
藤原:そうだよね。つまり、10以上19以下ということになる。
佳代:ハイ。でも、それを数えるのは難しそうですね。
藤原:そうなんだ。そこで、1つ作業用のセルを入れる。
三重:作業用のセルですか?
藤原:うん。例えば、年齢の横に、年代という列を作ってみよう。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃氏名 │年齢 │年代 │〜9歳 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃山中美枝│ 44│ │10代 │ ┃
佳代:つまり、C列で年代を確定して、それを数えるのですね。
藤原:そのとおり。
三重:えーっと、年代にする方法って、ありましたっけ?
藤原:あるよ。前にも勉強したよ。
三重:う〜ん、思い出せない。
藤原:ほら、天井と床っていうのをやっただろ。
佳代:あっ!思い出しました。CEILING関数とFLOOR関数ですね。
藤原:そう、詳しくは、バックナンバーを読んでもらうとして、今回は、
床、つまり、FLOOR関数を使う。
佳代:なるほど、FLOOR関数は、基準値を床に揃える関数です。
三重:わたしも思い出しました。つまり、10の単位で下に揃えればいいの
ですね。
藤原:そういうこと。とりあえず、公式を復習しておこう。
佳代:ハイ、=FLOOR(セル番地,揃える数)です。
藤原:そのとおり。この場合は、すべて、10の単位に揃えるわけだから、
まず、C2のセルに、=FLOOR(B2,10) と入力する。
三重:ハイ、やってみます。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃氏名 │年齢 │年代 │〜9歳 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃山中美枝│ 44│=FLOOR(B2,10)
藤原:後は、C列をフィルハンドルでコピーすればいい。
三重:ハイ、ここは、フィルハンドルの黒い十字架(╋)が出た時点で、ダ
ブルクリックすると一発で入ります。
藤原:そうだね。だから、何百件あっても、一瞬でコピーできるね。
佳代:すでに左側にデータがあるときは、本当に助かりますね。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃氏名 │年齢 │年代 │〜9歳 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃山中美枝│ 44│ 40│10代 │ ┃
┠─╂────┼────┼────╋カーソルを右下に近づけて
黒い十字架が出たら、
ダブルクリック
↓ 一瞬で、コピーされる
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃氏名 │年齢 │年代 │〜9歳 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃山中美枝│ 44│ 40│10代 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃3┃西田則之│ 35│ 30│20代 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃4┃永山文香│ 16│ 10│30代 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃5┃蟹江もや│ 82│ 80│40代 │ ┃
┠─╂────┼────┼────┼────┼────┨
┃6┃草刈 剛│ 29│ 20│50代 │ ┃
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
┃97┃佐渡美雪│ 45│ 40│ │ ┃
┠─╂────┼────┼────┼────┼────┨
┃98┃橋本文洋│ 22│ 20│ │ ┃
┠─╂────┼────┼────┼────┼────┨
┃99┃高橋千里│ 9│ 0│ │ ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
藤原:これで、年代を表示することができた。後は、数えるだけ。
佳代:これは、何度もやりましたね。COUNTIF関数です。
藤原:うん。今回は、直接、数字を入れる方法でやろう。
佳代:ハイ、すると、E列におのおの数字を指定します。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃氏名 │年齢 │年代 │〜9歳 │=COUNTIF(C:C,0)
┠─╂────┼────┼────┼────┼────┨
┃2┃山中美枝│ 44│ 40│10代 │=COUNTIF(C:C,10)
┠─╂────┼────┼────┼────┼────┨
┃3┃西田則之│ 35│ 30│20代 │=COUNTIF(C:C,20)
┠─╂────┼────┼────┼────┼────┨
┃4┃永山文香│ 16│ 10│30代 │=COUNTIF(C:C,30)
┠─╂────┼────┼────┼────┼────┨
┃5┃蟹江もや│ 82│ 80│40代 │=COUNTIF(C:C,40)
┠─╂────┼────┼────┼────┼────┨
┃6┃草刈 剛│ 29│ 20│50代 │=COUNTIF(C:C,50)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
藤原:紙面の都合上、50代までしかスペースを取らなかったけど、要は、
C列の中で、一致する数字を数えるということだから、必要に応じ
て作ってほしい。
佳代:わかりました。年代別にデータを出している人も多いと思いますの
で、そんなときには、是非、利用してください。それでは、今日は、
この辺で。
-----------------------------------------------------------------
<まとめ> 今回の問題に対する手順のみを示します
-----------------------------------------------------------------
C2のセルに、=FLOOR(B2,10) と入力
C2のセルの右下にカーソルを近づけ、黒い十字架が出たら
ダブルクリック(ただし、B列に年齢データが入っているのが条件)
E1のセルに、=COUNTIF(C:C,0)と入力
E2のセルに、=COUNTIF(C:C,10)と入力
E3のセルに、=COUNTIF(C:C,20)と入力
E4のセルに、=COUNTIF(C:C,30)と入力
E5のセルに、=COUNTIF(C:C,40)と入力
E6のセルに、=COUNTIF(C:C,50)と入力
-----------------------------------------------------------------
<補足>
-----------------------------------------------------------------
C:Cとは、C列全体という意味です。つまり、=COUNTIF(C:C,0)なら
ば、C列に、0 がいくつあるかを数えます。
COUNTIF関数の検索条件は、文字列を数える場合は、「""」で囲みま
すが、数値やセル参照の場合は、そのまま入力します。
-----------------------------------------------------------------
<参考> 今回出てきた技に関連したものを示します
-----------------------------------------------------------------
【FLOOR関数関係】 =FLOOR(セル番地,揃える数)
http://www.pat.hi-ho.ne.jp/hirosilk/exb106.htm
【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
http://www.pat.hi-ho.ne.jp/hirosilk/exb241.htm#242
E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 254
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「一行おきに合計するには」
藤原:今日は、何人かの読者からの質問を元に、直接出題するよ。
三重:どんな問題ですか?
藤原:うん。とりあえず次の表を見てほしい。
┏━┳━━━━┯━━━━┯━━━━┯━━━━┯━━━━┓
┃ ┃A │B │C │D │E ┃
┣━╋━━━━┿━━━━┿━━━━┿━━━━┿━━━━┫
┃1┃会場名 │男女別 │1月 │2月 │3月 ┃
┠─╂────┼────┼────┼────┼────┨
┃2┃ │男子 │ 1230│ 1100│ 1430┃
┠─┨ 札幌 ├────┼────┼────┼────┨
┃3┃ │女子 │ 2210│ 2002│ 2423┃
┠─╂────┼────┼────┼────┼────┨
┃4┃ │男子 │ 6411│ 6100│ 6512┃
┠─┨ 東京 ├────┼────┼────┼────┨
┃5┃ │女子 │ 7022│ 6820│ 7045┃
┠─╂────┼────┼────┼────┼────┨
┃6┃ │男子 │ 2488│ 2142│ 2755┃
┠─┨ 大阪 ├────┼────┼────┼────┨
┃7┃ │女子 │ 2512│ 2322│ 2801┃
┠─╂────┼────┼────┼────┼────┨
┃8┃ │男子 │ 1004│ 920│ 1212┃
┠─┨ 福岡 ├────┼────┼────┼────┨
┃9┃ │女子 │ 1102│ 964│ 1234┃
┠─╂────┼────┼────┼────┼────┨
┃10┃ │男子合計│ │ │ ┃
┠─╂────┼────┼────┼────┼────┨
┃11┃ │女子合計│ │ │ ┃
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
佳代:なるほど、男子と女子が2行に分けて記されているのですね。
藤原:そう。そこで、10行目には、男子だけの合計、11行目には、女子だ
けの合計を作業用のセルを使わないで計算したい。
三重:むずかしそうですね。
藤原:そうかもね。もちろん、このぐらいの表ならば、セルを指定して合
計すれば簡単だけど、ものすごく大きい表の場合も考えて、式を作
ってほしいんだ。
三重:つまり、一行おきに合計する式を作ればいいのですね。
藤原:そういうこと。
佳代:わかりました。それでは問題です。上の表ように、男子だけの合計、
女子だけの合計を出すにはどうしたらいいでしょう。ただし、セル
番地を一つ一つ足し算する方法は不可とします。
三重:みなさんも、一緒に考えてくださいね。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン歴12年。
・大場佳代:藤原先生の生徒で,パソコン歴3年。
・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。
※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
のみを扱っています。(たいていの場合、97でも使えます)
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・上級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:これはね、配列を使うんだ。
三重:配列ですか?
藤原:そう。確か、100号記念でやったね。
佳代:ハイ、覚えています、Ctrl+Shift+Enter を打つやつですね。
藤原:そのとおり。配列については、いろいろなパターンがあって、一言
では話しにくい。とりあえず、総合的に言うと複数のデータを1つ
にまとめて計算できる機能と考えてよう。
三重:ハイ、だいたい、そんな感じでとらえています。
藤原:うん。今回は、範囲内のデータを条件に応じて取り出して、その部
分のみを計算するという感じで使う。
佳代:何となくわかってきました。
藤原:実際にやってみよう。形は違うけど、一行おきに計算する方法は、
前にもやったよね。
三重:ハイ。確か、ROW関数とMOD関数などを使ったと思います。
藤原:うん。行番号を返すROW関数と割り算の余りを出すMOD関数を組み合
わせて作ったよね。
佳代:そうでしたね。偶数行を計算したいのならば、2で割って、余りが
ゼロのときですし、奇数行ならば、余りが、1のときです。
藤原:そのとおり。それじゃあ、実際にやってみよう。まず、C10 のセル
に、=SUM(IF(MOD(ROW(C2:C9),2)=0,C2:C9)) と入力して。
三重:ハイ。
藤原:そして、Ctrl+Shift+Enter を押す。
三重:ハイ。あっ、中括弧が付きました。
藤原:そうだね。配列数式なったということだ。同じように、女子の合計
の欄に、SUM(IF(MOD(ROW(C2:C9),2)=1,C2:C9)) と入力し、やはり、
Ctrl+Shift+Enter を押す。これで、OK。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
┃8┃ │男子 │ 1004│ 920│ 1212┃
┠─┨ 福岡 ├────┼────┼────┼────┨
┃9┃ │女子 │ 1102│ 964│ 1234┃
┠─╂────┼────┼────┼────┼────┨
┃10┃ │男子合計│={SUM(IF(MOD(ROW(C2:C9),2)=0,C2:C9))}
┠─╂────┼────┼────┼────┼────┨
┃11┃ │女子合計│={SUM(IF(MOD(ROW(C2:C9),2)=1,C2:C9))}
┗━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
佳代:これで、C2からC9のセルの行番号を2で割ったときの余りが0のも
のを合計しなさいという感じになるわけですね。
藤原:そう。男子は、偶数行だから、行番号を2で割った場合割り切れる
から、余りは、ゼロになる。女子は、奇数行だから、2で割った余
りが1になる。
三重:何か、アクロバチックな技ですね。
藤原:うん。配列は、一種の裏技と考えていいだろう。理屈で割り切れな
い技がたくさん隠されている。少しずつマスターしていくといいだ
ろう。
三重:そうします。
藤原:後は、フィルハンドルで、右側にコピーしてやればいい。これで、
おのおののセルに単独の配列数式がコピーされる。
佳代:わかりました。配列は、いろいろな考え方があるので、難しそうで
すね。でも、今回のような使い方は、特に役に立ちそうなので、い
ろいろ研究してみてください。それでは、今日は、この辺で。
-----------------------------------------------------------------
<まとめ> 今回の問題に対する手順のみを示します
-----------------------------------------------------------------
セルC10を選択し、=SUM(IF(MOD(ROW(C2:C9),2)=0,C2:C9))と入力
Ctrl+Shift+Enter キーを同時に押す(数式に中括弧が付きます)
セルC11を選択し、=SUM(IF(MOD(ROW(C2:C9),2)=1,C2:C9))と入力
Ctrl+Shift+Enter キーを同時に押す(数式に中括弧が付きます)
セルC10、C11を選択
フィルハンドルで、右方向にコピー
-----------------------------------------------------------------
<補足>
-----------------------------------------------------------------
今回は、配列を使うことで、選択範囲内のすべての行番号を求め、求
めた行番号を割り算の余りを調べることで奇数行か偶数行かを判断し、
その合計を求めました。
この辺は、223号 とほぼ同じですので、よく分からない方は、まず、
こちら http://www.pat.hi-ho.ne.jp/hirosilk/exb221.htm#223 を勉
強してから、もう1度チャレンジしてください。
尚、IF関数の偽の場合は省略しました。省略した場合は、条件に合わ
ない場合は、何もしないということです。
配列を使うときは、必ず、Ctrl+Shift+Enterで設定します。そうす
ることにより中括弧が付きます。この中括弧は、手入力してはなりま
せん。手入力すると文字と判断され、配列数式にはなりませんので注
意してください。
-----------------------------------------------------------------
<参考> 今回出てきた技に関連したものを示します
-----------------------------------------------------------------
【IF関数】=IF(論理式,真の場合,偽の場合)
http://www.pat.hi-ho.ne.jp/hirosilk/exb036.htm
【MOD関数】割り算の余りを返す関数 《 =MOD(数値,除数) 》
http://www.pat.hi-ho.ne.jp/hirosilk/exb111.htm#114
【ROW関数】行番号を返す関数 《 =ROW() 》
http://www.pat.hi-ho.ne.jp/hirosilk/exb156.htm
【配列関係】
http://www.pat.hi-ho.ne.jp/hirosilk/exb096.htm#100
E∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ あなたの技術をぐ〜んと高めるマガジン ★
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞L
クイズで学ぼう!『エクセル』の小技 255
∞∞∞∞∞∞∞\(^o^)\∞∞∞(*_*);∞∞∞§^O^§∞∞∞∞∞∞∞∞∞∞
◆ 今日の問題 「数値を自動的に千倍にするには」
三重:先生、お隣さんから、久しぶりに質問を受けました。
藤原:おう、久しぶりだね。どんな質問?
三重:ハイ。ある書類を作るのに、数字が全部千単位なのです。
藤原:なるほど。
三重:面倒だから、単位を千にして、数字を入れようとしたらダメだとい
われたそうです。
佳代:つまり、きちんとゼロをつけなくちゃならないのね。
三重:そうなのよ。あのお姉さん、面倒くさがり屋だから。
藤原:わかったよ。それじゃあ、今日は、それを問題にしよう。
佳代:わかりました。それでは問題です。入力した数字を自動的に千倍に
するにはどうしたらいいでしょう?みなさんも一緒に考えてくださ
いね。
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
★ 解答を見る前に,少しだけ考えてね!
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
○ 登場人物紹介
・藤原清盛:塾の先生で,このマガジンの指導役。パソコン歴12年。
・大場佳代:藤原先生の生徒で,パソコン歴3年。
・山形三重:佳代の同級生で,パソコン歴2年半。藤原先生のいとこ。
※ このマガジンは,Microsoftのエクセル2000,2002 の Windows版
のみを扱っています。(たいていの場合、97でも使えます)
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
◆ 解 説 <難易度・・・中級>
∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
藤原:これはね。オプションで設定すればいいんだよ。
三重:オプションですか?
藤原:うん。知っているかどうかという技だね。
佳代:えーっと、そんなのありましたっけ?
藤原:あるんだよ。それじゃあ、三重ちゃん、まず、[ツール]の[オプ
ション]を開いてごらん。
三重:ハイ。開きました。
藤原:そして、「編集」のタブを開く。
三重:開きました。ここにあるのですか?
藤原:そう。
佳代:えーっと、一見したところ、この入力単位というのが怪しいですね。
藤原:正解だ。
三重:入力単位って、小数点位置を固定するのところにありますよ。
藤原:そうだよ。
三重:えっ?小数点なんて関係ありませんよ。
藤原:そこなんだ。小数点位置を固定するという意味がわかりにくいよね。
でも、これは、数字を倍数にすると考えるとわかりやすくなる。
佳代:つまり、ゼロを基準に小数点が動くという観念ですか?
藤原:そういうこと。だから、単位を1にすると、10分の1になる。
三重:なるほど、だんだんわかってきました。つまり、小数点を左に動か
すということですね。
藤原:そういうこと。2ならば、100分の1、3ならば1000分の1になる。
佳代:ということは、10倍にするには、−1を入れればいいのですね。
藤原:正解。マイナスの数字を入れると小数点が右に動くんだ。
三重:やってみます。まず、「小数点位置を固定する」をチェックして、
千倍だから、「入力単位」に、−3を入れればいいのですね。
藤原:もちろん。
三重:完了です。それじゃあ、数字を入れてみます。1を入れると、あっ!
1000になりました。
佳代:なるほど、こんな技があったのですね。
藤原:うん。会社などでは、便利かもしれないね。ただし、注意してほし
いのは、オプション設定だから、作業が終わったら、小数点位置を
固定するのチェックを外しておくこと。
佳代:わかりました。場合によっては役立ちそうです。みなさんも、是非、
使ってみてください。それでは、今日は、この辺で。
-----------------------------------------------------------------
<まとめ> 今回の問題に対する手順のみを示します
-----------------------------------------------------------------
[ツール]−[オプション]から「編集」のタブを開く
「小数点位置を固定する」にチェックをつける
「入力単位」に「-3」と入力(リストボタンをクリックしてもよい)
[OK]ボタンをクリック
-----------------------------------------------------------------
<補足>
-----------------------------------------------------------------
「小数点位置を固定する」にチェックが入っていなければ、この機能
は働きませんので、「入力単位」にどんな数字が入っていても問題あ
りません。ですから、一回使った単位をそのままにしておいて大丈夫
です。
逆に、この機能をオフにしないと、すべてのシートで働きますので、
作業が終わったら、必ずオフにする習慣を付けてください。
★ エクセルの小技へ ★ | ★ TOPのページへ ★ | ★ 次へ(256〜260) ★ |