8日目 10日目

9日目

目標

課題


課題 19

まずは LOOKUP関数に挑戦

次のような表を作成し[ ? ]に LOOKUP関数をいれよ。 なお、表中の空欄部分には乱数発生関数 RAND() を利用して、0〜100の間の数値を入れよ。

販売員別売上高(単位千円)
 
月日 山本 青木 中川 小澤
2003/06/01        
2003/06/02        
2003/06/03        
2003/06/04        
2003/06/05        
2003/06/06        
2003/06/07        
2003/06/08        
2003/06/09        
2003/06/10        
2003/06/08 の中川の売り上げは、 です。

乱数の発生

関数 RAND()は引数を持たない関数で、{x| 0 ≦ x ≦ 1} な乱数を返す。 したがって、例えば a以上、b以下であるような乱数が必要な場合は "=RAND()*(b-a) + a"を用いれば良い。

セルの検索(LOOKUP関数群)

ある範囲から、特定の条件に一致するようなセルを探しだし、そのセルの値や位置を求めることができる。 この目的に用いる関数は「検索/行列関数」に分類されている。 検索範囲や検索方法によって次のような関数や方法を利用することになる。

表1
 
商品番号 品名  量   価格 
048 ピーマン 150g 98
064 キャベツ 1玉 198
065 キュウリ 3本 148
075 ニンジン 1kg 198
079 オクラ 10本 158
       
表2
 
 A   B   C   D 
 優   良   可  不可

表1を用いて納品書を作る例を以下に示す。

  1. 適切に表を作成する。 本来ならば商品テーブルと納品書は別のシートに作成した方が良いと思われるが、説明のため同一シートに書いてある。
    lookup 1st  
     
  2. (商品番号欄に値を入れて)引数を設定する。
    あとで、コピーした際に場所がずれないように範囲欄は絶対参照とすること。
    品名は表位置の左から2列目なので、列番号は「2」である。
     
    lookup second
  3. 単価欄も同様に参照し、価格欄に適切な式を入れる。また、「小計」、「消費税」、「合計」欄にも式を入れる。

LOOKUP関数群で検査値に対応するものがなかった場合に "#N/A" が得られるが これを「IF関数」を用いて表示しないようにできるので、考えてみよ。

ヒント

練習

上記の納品書を完成させ、間違った商品番号が入力された場合には「入力エラー」と 表示させるようにせよ。


課題 20

計算と並べ替え

以下はオムニバス方式で6人の教員が採点した30名の成績である。 各生徒が獲得した6つの点数について最高点と最低点を除外した 4つの点数の平均を計算し、平均点の高い順に並べ替えよ。

ヒント
最高点や最低点の抽出には関数 LARGE を使え。

  A先生 B先生 C先生 D先生 E先生 F先生
生徒01 75 65 75 85 80 90
生徒02 75 65 85 85 55 80
生徒03 70 85 80 85 85 85
生徒04 80 60 80 85 90 60
生徒05 90 70 75 65 90 60
生徒06 75 65 80 85 75 90
生徒07 80 70 80 85 80 90
生徒08 80 85 85 85 85 60
生徒09 85 85 80 85 95 90
生徒10 85 85 80 85 90 60
生徒11 85 70 85 85 90 60
生徒12 80 85 85 85 90 90
生徒13 75 65 80 65 40 60
生徒14 75 85 85 85 85 60
生徒15 75 85 80 85 60 90
生徒16 70 85 80 85 85 85
生徒17 70 85 85 85 60 86
生徒18 80 85 80 85 65 86
生徒19 75 0 75 0 65 90
生徒20 0 0 75 65 35 90
last part of table

フォームを用いた入力

大量のデータを入力している場合にはフォームを利用した入力を用いた方が便利な場合がある。

フォームを用いた入力を行う場合には、いずれかのデータセルを選択後、「データ」→「フォーム」を実行する。 なお、フォームを利用する場合オートフィルは利用できないので、入力の手間を減らすためにはあらかじめ埋められる範囲の入力はしておいたほうが良い。

form image

フォーム入力ウィンドウの右上にでている数字は「現在編集中のデータ/全データ数」である。

次のデータに移動する際には「次を検索」、前に戻る場合は「前を検索」、最後にデータを追加する際には「新規」を押す。 必要ないデータを削除することもできる。フォーム入力を終える場合には「閉じる」を押す。

なお、エクセルがデータ範囲を正しく推測できない場合は、範囲全体を選択した後、フォームを起動する。


最高点、最低点、領域

複数の採点官による得点を評価する際に、最高点および最低点を除いた残りの平均点が用いられることがある。 (例. オリンピックの体操競技等)
エクセルを用いてこのような採点を行うようにというのが、課題20である。 このためには、エクセルで用意されている LARGESMALL関数を用いる。

LARGEおよびSMALL関数は、与えられた領域中(範囲)から n番目(順位)に 大きな(小さな)値を返す。 なお、最大値および最小値は MAX関数やMIN関数でも得ることができる。

入力した表の右側に 「最高」、「2番目」、「3番目」、「4番目」、「5番目」、「最低」の点数を参照する領域を作成し、 「最高」は MAX関数を、「2番目」から「4番目」までは LARGE関数を、 「5番目」には SMALL関数を「最低」については MIN関数を用いて値を表示するようにせよ。

コピーをして領域を埋めるためには参照方法を適切にする必要があることに注意せよ。 ($ はどこにつけるのが正しいか?)

表が出来上がれば、最高点および最低点を除いた平均値を一番右に表示するように設定せよ。

なお、エクセルには与えられたデータの中から、指定した割合の範囲に含まれるデータを除いて平均を求める TRIMMEAN関数があるので、各自でどのような振る舞いをするのか調べてみよ。


並べ替え

エクセルでデータを並べ替えることを「ソート」と呼ぶ。 行でソートする場合は、並べ替えたいデータが入力されているセルを選択した後、「データ」→「並べ替え」を実行する。

sort 1st

ソートする領域をエクセルが正しく見つけられなかった場合は「キャンセル」を押して取りやめ、正しい範囲全体を選択した後、「データ」→「並べ替え」を実行する。

並べ替えの際に優先する順位を選択した後、「OK」を押すとソートが実行される。

エクセルがソートする領域を「正しく推定できる」ような単純なデータ構造であるときは、 キーとなる列の一つのセルを選択後、メニューバーにあるsort iconを押すことにより容易にソートを実行できる。

なお、ソートする際にはまとめて並べ替えを行いたい列(行)を含めた範囲を指定する必要がある。


課題 21

フォーム入力、抽出・並べ替え

データベース用のフォームを使って15名分の名簿(住所録や電話番号など任意)を作成し、並び替えや抽出を行え。

ヒント

データを入力する時には、セルを選択した状態で「データ」→「フォーム」を選ぶ。 並び替えや抽出も「データ」→「並べ替え」、「データ」→「フィルタ」を選んで簡単にできます。

例題

kadai21 data

フォームを用いた入力、および並べ替えは課題20を参照のこと。

データの抽出には「フィルタ」を用いる。

  1. オートフィルタ

    「データ」→「フィルタ」→「オートフィルタ」を実行すると 各列の見出しに▼ボタンが表示され、設定されたことが判る。

    autofilter

    見出しの▼ボタンを押すことによりフィルタ条件を選択できる。 デフォルト以外のフィルタを設定するために、次の2つが用意されている。

    auto filter selector

    フィルタが選択されている列は▼の色が異なる。 フィルタを解除するには設定されている列で「(すべて)」を選択する。

  2. フィルタオプション

    オートフィルタより詳細な条件設定でデータを抽出できる。

    1. 事前準備

      条件を設定するための領域として見出し語と同じ内容を入力したセルを準備する。

      条件を列記する。1行に記述された複数条件は and が取られ、 異なる行に記述された条件は or となる。

    2. 実行

      「データ」→「フィルタ」→「フィルタオプションの設定」

    例題

    条件の入力。「電話番号がフリーダイアルである」 or 「福井市内」。

    filter condition

    フィルタオプションの起動

    filter option

    実行結果。選択範囲内を選んだため、条件に一致しないものが隠されている。

    filter results

    フィルタを解除するには「データ」→「フィルタ」→「すべて表示」を実行する。


課題 22

抽出(応用)

課題20で作成したシートをコピーし、シート名を課題22とする。 データベースの抽出機能を用いて以下のレコードを抽出しなさい。

  1. 平均点が上から3位までのレコードを抽出せよ
  2. A先生と C先生の成績が 80点以上のレコードを抽出せよ

課題21 の復習であるので、課題21を参照のこと。


tacha@tack.fukui-med.ac.jp
$Id: 09.html,v 1.3 2003/06/24 04:46:44 tacha Exp $