小テストができなかった原因が、適切に表を構築できなかったためならば このページが参考になるかもしれない。そのような場合は、 実際に「エクセルが使える」と胸を張って言えるためには、 「使い方を知っている」事はもちろん必要であるが、それぞれの場面でエクセルを 「どう使うか」を考えられることも重要であることを理解してほしい。
このページに書かれている事が理解できていたにも関わらず、小テストができなかった場合は 各回の解説にしたがって操作方法を確認しておくこと
次の問いに「ゴールシーク」を用いて解答せよ。(配点率 10%)
親が 26才の時に第1子が、31才の時に第2子が生まれたものとする。 二人の子の年齢の和の2倍が、親の年齢と等しくなるのは親が何才の時か。
解答例 1
親が現在、31才であると仮定すると、第1子の年齢が5才であり、 第2子の年齢は0才となることが問題文から読み取れる。 そうすると、たとえば次のような構成の表を作成することができる。
A | B | C | D | |
1 | 現在の年齢 | 1 | 年後の年齢 | |
2 | 親 | 31 | =B2+$C$1 | |
3 | 第1子 | 5 | =B3+$C$1 | |
4 | 第2子 | 0 | =B4+$C$1 | |
5 | 第1子と第2子の年齢の和の2倍 - 親の年齢 | =($C$3+$C$4)*2 - $C$2 |
ライトブルーのセルに表示されているものは入力されるべき式である。 この表を用いれば、問題は
となるので、そのままゴールシークを用いて解くことができる(はず)。
解答例 2
第1子の年齢は「親の年齢 - 26」、第2子の年齢は「親の年齢 - 31」であることに 気付けば、問題はもっと単純となる。 たとえば次のような構成の表を作成すればよい。
A | B | C | |
1 | 年齢 | ||
2 | 親 | 31 | |
3 | 第1子 | =$C$2-26 | |
4 | 第2子 | =$C$2-31 | |
5 | 第1子と第2子の年齢の和の2倍 - 親の年齢 | =($C$3+$C$4)*2 - $C$2 |
ライトブルーのセルに表示されているものは入力されるべき式である。 この表を用いれば、問題は
となるので、やはり、そのままゴールシークを用いて解くことができる(はず)。
なお、答えは次の通り。
次の問いに「ソルバー」を用いて解答せよ。(配点率 20%)
キャンディが幾つかと子供が何人かいるものとする。 いま子供にキャンディを平等にわけあたえると、キャンディが3個あまり、 6個づつ配ると4人の子供は 1つもキャンディをもらえなくなるという。 このような条件を満たすためには、子供は最低何人いる必要があるか。 また、そのときのキャンディの個数は幾つか。
なお、あまりの数は関数「MOD」を用いると求めることができる。
解答例
問題文をよむと次のような条件が提示されていることが判る。
3つ目の不等式が理解できない場合は、次のような図を思い浮かべればよい。 赤丸はキャンディを意味し、下部にある横棒は数直線である。 なお、等号はキャンディが6で割り切れた場合に成立する。
これらの条件から、たとえば次の表を考えることができる。
A | B | |
1 | キャンディの数 | 7 |
2 | 子供の人数 | 4 |
3 | 平等に配った場合のあまり | =MOD(B1, B2) |
4 | キャンディをもらえた子供 | =B2 - 4 |
5 | キャンディの数÷6 | =B1/6 |
ライトブルーのセルに表示されているものは入力されるべき式である。 この表を用いれば、問題は
となるので、ソルバーを用いて解くことができる(はず)。
なお、答えは次の通り。
なお、この条件を満たす組合わせは多数ある(実際、私も 6/29 には子供が7人だと言っていた_o_)。 多数ある中から求めたい組合わせは子供の数の最小値であるので、 初期値としては、小さな値を入れておくのが良いと思われる。 また、(おそらく)条件中に関数 MOD が使われているために、 仮の解を見つけられない場合もあるようである。
たとえば、初期値として、子供の数を条件から許される最小値の 4 とし、 キャンディ7個(あまりが 3であるから)を用いると正しい答えを得られるが、 初期値として 子供4人、キャンディを3個とすると、仮の解を見つけることができない。
また、「6つずつ配ると…」の部分で、6つもらえた子供は一人もいなくても良い もしくは、「平等に配った」の部分で「一つももらえないのも平等である」と 解釈すると子供5人、キャンディ 3個という解もあるかも知れない...
コードから性別および年齢を求める事に苦労していたようであるが、 元々のコメントを良く読めばそれほど困難ではない。
との事なので、「分類コード」は 1000〜2999 までしか有り得ないことが判る。 したがって、「分類コード」が 2000以上の場合は男子、それ以外の場合は女子という 判別を行うだけで性別が決定できる。
「分類コードが5桁以上にならないとは書いていないぞ。問題が不備だ」と いう反論は甘んじて受けるが、データに出現する分類コードを確認してみれば、 そのようなものがないことは明らかである。
また、年齢については
という事が、「分類コードを1000で割ったあまりが年齢である」と 同じ意味であることに気付けば、問2で利用した関数 MOD を使えば良いことが判る。
問3:小問3(問題文略)
「データ」→「並べ替え」で、「最優先されるキー」に年齢を、 「2番目に優先されるキー」に、性別を、「3番目に優先されるキー」に調査年度を指定すればよい。
問3:小問4(問題文略)
比を表示する列を作成したあと、「データ」→「フィルタ」→「オートフィルタ」を実行し、 比の列で、(トップ10)を選択、上位1項目のみを表示した結果をコピーする。
問3:小問5(問題文略)
次のような表を検索条件として指定すれば良い。
調査年度 | 調査年度 | 性別 | 年齢 |
>=1990 | <2000 | 男 | 15 |
問3:小問6(問題文略)
調査年度(緑色のセル)の入力規則には抽出した表の調査年度の範囲を指定すれば良い。 具体的には課題22で取り上げた手順を踏む。 その際に、「元の値(S)」として、小問 5 で作成した表の調査年度の欄を指定する。
調査年度が左端にあり、さらに入力規則を指定したため、検索には VLOOKUP、LOOKUP の どちらでも使用することができる。