*データを分析する [#ga71cd8c] それでは、 まず「試合結果」のシートのデータをもとに、 「勝ち点」のシートに、 試合ごとの勝ち点を表示する表を作りましょう。 「勝ち点」のシートのデータを、 もう少し分析してみましょう。 +ワークシートの見出しから、「勝ち点」をクリック **文字を取り出す [#mda99ed6] 試合結果では、 勝ち・引き分け・負けは、「○」「△」「●」で あらわされています。 ここは詳しい説明をしないので、 自分で考えてみましょう(ほかの人と相談してもかまいません)。 しかし、「試合結果」のシートでは、 「3○2」のように、得失点も同じセルに入力されています。 まず、 ''セルから「○」「△」「●」の文字を取り出しましょう''。 **勝ち点の累積値を求める [#zb5bf11c] いまは節ごとの勝ち点がわかっています。 文字を取り出すには、いくつかの方法があります。 LEFT関数をRIGHT関数を組み合わせることもできますが、 ここでは、''MID''関数を使うことにします。 この表を少し変更して、 ''勝ち点の累積値(前の節までの勝ち点の合計)''を求めてみましょう。 :MID(文字列の指定した位置から指定した数の文字を返す)| --書式 : LEFT(文字列, 文字数) --引数 : 文字列 :文字を取り出したい文字列やセル --引数 : 開始位置 :取り出したい文字列の先頭文字からの位置 --引数 : 文字数 :取り出したい文字数 --例:C7セルの文字列の3文字目から2文字分の文字列を取り出す <pre> =COLOR(red):MIDCOLOR(black):(C7,3,2) </pre> つまり、次のような表があるとすると、 |CENTER:|CENTER:|CENTER:|CENTER:|c ||第1節|第2節|第3節|h |~Aチーム|3|0|1| |~Bチーム|1|3|3| |~Cチーム|0|0|1| 勝ち点の累積は、次のようになります。 各節の結果には、前の節までの合計が表示されます。 |CENTER:|CENTER:|CENTER:|CENTER:|c ||第1節|第2節|第3節|h |~Aチーム|3|3|4| |~Bチーム|1|4|6| |~Cチーム|0|0|1| 試合結果は「3○2」のようになっているので、 MID関数を使って、 「''左から2文字目から1文字分取り出せ''」ば、 記号を取り出すことができます。 このように累積値が表示されるように、 C2〜P2セルの計算式を変更してください。 では、次のようにして、関数の機能を試してみましょう。 +B2セルをクリック +数式バーの「''関数の挿入''」ボタンをクリック +利用する関数の選択 --「関数の分類」から「文字列操作」を選択 --「関数名」から「MID」を選択 --「OK」ボタンをクリック +引数の設定 --「文字列」の入力欄をクリックし、「試合結果」のシートの見出しをクリックした後、B2セルをクリック~ (自動的に「試合結果!B2」と入力される) --「開始位置」の入力欄をクリックし、「1」と入力 --「文字数」の入力欄をクリックし、「1」と入力 --「OK」ボタンをクリック #ref(ex06.png,nolink,引数の選択) :ヒント| 前の節との合計を計算する式は、 C2セルの場合は、次のようになります。 この式を使って考えてください。 #pre(novervatim){{ =B2+IF(MID(試合結果!C2,2,1)="○",3,IF(MID(試合結果!C2,2,1)="△",1,0)) }} 記号を取り出すことができましたか? **順位を求める [#zac2bffd] 累積値が計算できると、 最終節(第15節)のデータが、 勝ち点のすべての節の合計になっているのがわかります。 **条件判断をする [#x3b48090] 記号を取り出しただけでは、勝ち点を計算することができません。 勝ち点は、次の表にしたがって計算されます。 この第15節の勝ち点のデータを使って、 順位をつけましょう。 |CENTER|CENTER:|CENTER:|CENTER:|c |~勝敗|勝ち|引き分け|負け| |~記号|○|△|●| |~点数|3点|1点|0点| 順位をつけるには、 [[第6回で紹介>Lecture/InfoPrac2004/6th/sort#n42ab76f]]した、 ''RANK''関数を使ってください。 また、同じく、 [[第6回で紹介>Lecture/InfoPrac2004/6th/sort#a39124f3]]した、 ''絶対参照''も利用してください。 このように、記号にしたがって、表示する点数を変えるようにしましょう。 +Q1セルに「順位」と入力 +Q2セルに、RANK関数と絶対参照を使って、順位を計算 +Q2セルの計算式を、Q3〜Q17セルにコピー ある条件ごとに処理を変える、 「''条件判断''」をするには、 ''IF''関数を使います。 :相対参照と絶対参照| 「C1」や「D22」のようなセル番地を指定した計算式を、 別のセルにコピーすると、計算式の中のセル番地まで変わってしまいます。 このようなセルの参照のしかたを「''相対参照''」といいます。&br; 「$C$1」や「D$22」のように「$」記号を使ってセル番地を指定した計算式を、 別のセルにコピーしても、計算式の中のセル番号は変わりません。 このようなセルの参照のしかたを「''絶対参照''」といいます。&br; まとめると次のようになります。 |参照のしかた|例|h |相対参照|A1| |絶対参照(セルを固定)|$A$1| |絶対参照(行を固定)|A$1| |絶対参照(列を固定)|$A1| :IF(指定された条件(論理式)が合っているか(真)違っているか(偽)を判断し、真と偽のそれぞれの場合の結果を返す)| --書式 : IF(論理式, 真の場合, 偽の場合) --引数 : 論理式 : 評価する条件(比較演算子を使う) --引数 : 真の場合 : 論理式の結果が真(TRUE)の場合に返される値 --引数 : 偽の場合 : 論理式の結果が偽(FALSE)の場合に返される値 --例:D1セルの値が0なら"ゼロ"を、0でないなら"ゼロじゃない"と表示 <pre> =COLOR(red):IFCOLOR(black):(D1=0,"ゼロ","ゼロじゃない") </pre> 論理式には、次のような''比較演算子''を使います。 条件を正しい場合は「TRUE」(真)、 正しくない場合は「FALSE」(偽)と判断します。 |CENTER:演算子|CENTER:式|CENTER:内容|CENTER:例|CENTER:結果|h |=(等号)|CENTER:A=B|AとBが等しい|1=2|FALSE| |<>(不等号)|CENTER:A<>B|AとBが等しくない|3<>4|TRUE| |>(〜より大きい)|CENTER:A>B|AがBより大きい|5>6|FALSE| |<(〜より小さい)|CENTER:A<B|AがBより小さい|7<8|TRUE| |>=(〜以上)|CENTER:A>=B|AがB以上である|9>=10|FALSE| |<=(〜以上|A<=B|CENTER:AがB以下である|11<=11|TRUE| MID関数とIF関数を使えば、 「''試合結果から勝敗の記号を取り出し、'' ''記号にあった勝ち点の数字を表示させる''」 ことができます。 鹿島アントラーズの第1節の勝敗は、次のように考えられます。 <pre> 「COLOR(blue):B2セルから記号を取り出して、COLOR(red):その記号が○ならば「3」を表示するCOLOR(black):」 </pre> つまり、 B2セルの計算式は、次のようになります。 計算式のどの部分がIF関数の式で、どの部分がMID関数の部分かに注意して、 計算式を入力してください。 <pre> =COLOR(red):IF(COLOR(blue):MID(試合結果!B2,2,1)COLOR(red):="○",3) </pre> **関数をネストにする [#i2abb94e] このままでは、 勝ちの場合の勝ち点は表示できましたが、 引き分けや負けの場合の点を表示できません。 さっきの式、 <pre> =COLOR(red):IF(COLOR(blue):MID(試合結果!B2,2,1)COLOR(red):="○",3) </pre> では、IF関数のなかで、MID関数を使っています。 このような関数の中で別の関数を使うことを、 「''関数のネスト''」といいます。 MID関数を使った「△」や「●」を取り出す部分を、 IF関数の中に追加してみましょう。 すると、鹿島アントラーズの第1節の勝敗は、次のように考えられます。 条件が偽の場合に、もうひとつIF関数を使うのがポイントです。 <pre> (条件)COLOR(blue):B2セルから取り出した記号が (条件が真)COLOR(red):○ならば「3」を表示するCOLOR(black): (条件が偽)(追加条件)COLOR(blue):B2セルから取り出した記号が (条件が真)COLOR(green):△ならば「1」を表示するCOLOR(black): (条件が偽)COLOR(green):「0」を表示する </pre> つまり、 B2セルの計算式は、次のようになります。 計算式のどの部分がどの関数の式なのかに注意してください。 <pre> =COLOR(red):IF(COLOR(blue):MID(試合結果!B2,2,1)COLOR(red):="○",3,COLOR(green):IF(COLOR(blue):MID(試合結果!B2,2,1)COLOR(green):="△",1,0)COLOR(red):) </pre> 計算ができたら、 計算式を他のセルにコピーしましょう。 [[第6回の内容>Lecture/InfoPrac2004/6th/count#v9577075]]を参考に、 「''オートフィル''」機能を使って、 B2〜P17セルに計算式を、コピーしましょう。 &br; &navi2(Lecture/InfoPrac2004/7th,next);進んでください。 ---- #navi2(Lecture/InfoPrac2004/7th,prev,toc,next) }} |