*関数の利用 [#f5612489] **関数とは(再掲) [#n813bb08] 「関数」とは、数学の関数と同じような働きをします。 「''数字や文字など『値』を与えると、いろいろな『処理』をして、'' ''新しい値を『結果』として返す''」ような仕掛けのことです。 &br; COLOR(red):(⇒テキスト: 169ページ) Excelには、数学、財務・会計、統計、データベースなど、 多くの関数が備えてあります。 #ref(function.png,nolink,関数の例) 関数を、自動販売機に例えてみましょう。 自動販売機という「関数」に、お金と商品ボタンという「値」を与えて、 処理させると、ジュースやコーヒーという「結果」が返ってきます。 <pre> #pre(novervatim){{ 値(お金、商品ボタン)→COLOR(red):関数COLOR(black):(自動販売機)→結果(商品とおつり) </pre> }} また、「値」が変わると、関数が返す「結果」は変わってきます。 自動販売機では、投入する金額や商品ボタンが違えば、でてくる商品やおつりの金額が変わってきます。 <pre> #pre(novervatim){{ 100円と「コーヒー」のボタン→COLOR(red):自動販売機COLOR(black):→コーヒー缶 500円と「紅茶」のボタン→COLOR(red):自動販売機COLOR(black):→紅茶缶とおつり(400円) </pre> }} 関数の場合は、 数字や文字のデータだけでなく、セルの番地を値として与えることができます。 このような関数に与える値のことを「''引数''」といいます。 引数(数字や文字、他のセルの番地)→関数→結果 ***関数の使い方 [#ta3ed3f0] 関数は、具体的には、次のような計算式として入力します。 使い方(書式)や 引数の数は、関数によって変わります。 <pre> #pre(novervatim){{ =関数名(引数1, 引数2, 引数3, ...) </pre> }} セルに入力できる計算式は1つだけです。 しかし、いくつかの関数を組み合わせたい場合には、 ある関数の引数として別の関数を使う、関数の「''ネスト(入れ子)''」をします。 たとえば、関数Aの2番目の引数に関数Bを使う場合は、次のような計算式を入力します。 <pre> #pre(novervatim){{ =COLOR(red):関数A(引数A-1, COLOR(blue):関数B(引数B-1, 引数B-2, ...)COLOR(red):) </pre> }} **ウィルスの届出件数の順位を調べる [#zd77b603] 関数を使って、月ごとのウィルスの届出件数の順位を調べてみましょう。 A21〜K27セルに、次のように入力してください。 |ウィルス名|1月|2月|3月|4月|5月|6月|7月|8月|9月|10月| |W32/Netsky||||||||||| |W32/Mydoom||||||||||| |W32/Bagle||||||||||| |W32/Lovgate||||||||||| |W32/Zafi||||||||||| |W32/Klez||||||||||| では、「''RANK''」という関数を使って、 順位を求めてみましょう。 RANK関数は、次のような関数です。 :RANK(数値が指定された範囲で何番目に位置するかを返す) | --書式 : RANK(数値, 範囲, 順序) --引数 : 数値 : 順位を調べる数値 --引数 : 範囲 : 調べるセルの範囲 --引数 : 順序 : 順位の並べ方 ---0か省略なら、大きいもの順に順位をつける(降順) ---0以外の数字なら、小さいもの順に順位をつける(昇順) つまり、月ごとに ''「あるウィルスの届出件数(数値)が6つのウィルスの届出件数の中(範囲)で 大きいものから何番目か(順序)」''を調べることができます。 したがって、関数は次のようになるはずです。 <pre> #pre(novervatim){{ =RANK(あるウィルスの届出件数, 6つのウィルスの届出件数) </pre> }} まず、 1月のNetskyの順位を計算しましょう。 関数を利用するには、次のようにします。 &br; COLOR(red):(⇒テキスト: 169〜171ページ) +B22セルをクリック +数式バーの「関数の挿入」ボタンをクリック #ref(ex01.png,nolink,「関数の挿入」ボタン) +利用する関数を選択 --「関数の分類」から「統計」を選択 --「関数名」から「RANK」を選択 #ref(ex02.png,nolink,関数の指定) +引数を設定 --「数値」の入力欄をクリックし、B5セルをクリックして指定 &br;(B5と入力される) --「範囲」の入力欄をクリックし、B5〜B10セルをドラッグしてして指定 &br;(B5:B10と入力される --「OK」ボタンをクリック #ref(ex03.png,nolink,引数の指定) >COLOR(red):<注意>&br; 結果として「#N/A」と表示されます。 これは「引数に値がない」というエラーメッセージですが、 ここではこのままにしておきます。 同じような操作を、 B23〜B27セルに繰り返して、 それぞれのウィルスの順位を求めてください。 計算ができると、次のようになります。 |ウィルス名|1月|...| |W32/Netsky|#N/A|...| |W32/Mydoom|1|...| |W32/Bagle|3|...| |W32/Lovgate|4|...| |W32/Zafi|#N/A|...| |W32/Klez|2|...| 1月分の順位の計算ができたら、 [[前回>Lecture/InfoPrac2004/4th/copy_cell]]や [[割合を計算した>Lecture/InfoPrac2004/5th/calc]]のと同じように、 その計算式をコピーして、 2月〜10月分を順位の計算をしましょう。 &br; &navi2(Lecture/InfoPrac2004/5th,next);進んでください。 ---- #navi2(Lecture/InfoPrac2004/5th,prev,toc,next) }} |