*文字列関数で勝ち点を計算する [#n9b4d378] それでは、 まず「試合結果」のシートのデータをもとに、 「勝ち点」のシートに、 試合ごとの勝ち点を表示する表を作りましょう。 +ワークシートの見出しから、「勝ち点」をクリック **文字を取り出す [#mda99ed6] 試合結果では、 勝ち・引き分け・負けは、「○」「△」「●」で あらわされています。 しかし、「試合結果」のシートでは、 「3○2」のように、得失点も同じセルに入力されています。 まず、 ''セルから「○」「△」「●」の文字を取り出しましょう''。 文字を取り出すには、いくつかの方法があります。 LEFT関数をRIGHT関数を組み合わせることもできますが、 ここでは、''MID''関数を使うことにします。 :MID(文字列の指定した位置から指定した数の文字を返す)| --書式 : LEFT(文字列, 文字数) --引数 : 文字列 :文字を取り出したい文字列やセル --引数 : 開始位置 :取り出したい文字列の先頭文字からの位置 --引数 : 文字数 :取り出したい文字数 --例:C7セルの文字列の3文字目から2文字分の文字列を取り出す <pre> =COLOR(red):MIDCOLOR(black):(C7,3,2) </pre> 試合結果は「3○2」のようになっているので、 MID関数を使って、 「''左から2文字目から1文字分取り出せ''」ば、 記号を取り出すことができます。 では、次のようにして、関数の機能を試してみましょう。 +B2セルをクリック +数式バーの「''関数の挿入''」ボタンをクリック +利用する関数の選択 --「関数の分類」から「文字列操作」を選択 --「関数名」から「MID」を選択 --「OK」ボタンをクリック +引数の設定 --「文字列」の入力欄をクリックし、「試合結果」のシートの見出しをクリックした後、B2セルをクリック~ (自動的に「試合結果!B2」と入力される) --「開始位置」の入力欄をクリックし、「2」と入力 --「文字数」の入力欄をクリックし、「1」と入力 --「OK」ボタンをクリック #ref(Lecture/InfoPrac2004/7th/mid/ex06.png,nolink,引数の選択) 記号を取り出すことができましたか? **条件判断をする [#x3b48090] 記号を取り出しただけでは、勝ち点を計算することができません。 勝ち点は、次の表にしたがって計算されます。 |CENTER|CENTER:|CENTER:|CENTER:|c |~勝敗|勝ち|引き分け|負け| |~記号|○|△|●| |~点数|3点|1点|0点| このように、記号にしたがって、表示する点数を変えるようにしましょう。 ある条件ごとに処理を変える、 「''条件判断''」をするには、 ''IF''関数を使います。 :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セルに計算式を、コピーしましょう。 #ref(Lecture/InfoPrac2004/7th/mid/ex08.png,nolink,勝ち点の計算) &br; &navi2(Lecture/InfoPrac2005/7th,next);進んでください。 ---- #navi2(Lecture/InfoPrac2005/7th,prev,toc,next) |