熊本大学大学院教授システム学専攻
目次:
【第3回】アプリケーションソフト:Office系Tool
第1章
第3章
現在の場所: ホームページ > [1]情報リテラシー > 【第3回】アプリケーションソフト:Office系Tool > 第3章 > 並べ替え(ソーティング)と条件判定

並べ替え(ソーティング)と条件判定

【本節の目的】
データの昇順や降順での並べ替え(ソーティング)と、 条件判定による選別の方法を練習する

並べ替え(ソーティング:sorting)

[演習 19]
以下の手順に従い、 これまで作成してきたex2.sxcで、 ソーティング機能の使い方を知り、成績の順位づけを行なえ。上書き保存も忘れずに。

どこかの行や列を基準(鍵、キー:key)として、 データを数値や文字の順で並び替える(ソーティングする)ことができます。

順序には、以下のように「昇順」と「降順」があります。

  • 昇順:小さい順(数値の場合)、 アルファベット順(文字の場合)
  • 降順:大きい順(数値の場合)、 アルファベットの逆順(文字の場合)
データを並べ替える(ソーティングする)には、
   並び替える行または列(場合によっては領域)を選択した後、 「データ」メニューの「並べ替え」で行ないます。その際、 キーとなる行または列の指定ならびに、昇順・降順の指定も行ないます。

合計点のある「G」列をキーとしてソーティングし、 順位づけをしてみましょう。

まず、受験生の個人データのある「3」列から「6」列までを選択します。


次に、「データ」メニューから「並べ替え」を選択します。


現われたダイアログで、「最優先キー」として「G」列を選びます。 また、ここでは、成績の良い順(合計点数の高い順)に並べるので、 「降順」をチェックします。






(註) 「2番目に優先されるキー」や、 「3番目に優先されるキー」は、 同点者がいた場合の順序づけを行なう際に利用します。

これにより、下図のように並び替えが完了しました。 合計点数が表示されている「G」列を見れば、確認できます。 この場合、並び替えは行単位に並び替えましたので、当然、番号や氏名、 科目ごとの成績なども一緒に並び替わっています。


折角、成績順にソーティングしましたので、順位もつけておきましょう。
「I2」に「順位」と書き、「I」列に順位を書きましょう。 「I3」セルに「1」を書き、「I6」までオートフィルでコピーすればOKですね。







条件判定

[演習 20]
以下の手順に従い、 これまで作成してきたex2.sxcで、 条件により表示する文字を変える方法を習得し、 合否の判定を行なえ。上書き保存も忘れずに。

唐突ですが、皆さんは条件によって行動を変えることがありますよね。

例えば、
    普通のお客さんには定価で売るが、
    好みの恰好いいお客さんには、 (あなだだけよと言いながら)2割引にしてあげる
なんていうことがありそうですね。

この行動は、以下のように一般化することができます。

「条件 (好みの恰好いいお客さんであるかどうか)」 を調べて、
  • 「条件が成立すれば (好みのお客さんであれば)
       → 「条件成立時用に決められた行動を行なう (2割引で売る)
  • 「条件が成立しなければ (好みのお客さんでなければ)」
       → 「条件成立時用に決められた行動を行なう (定価で売る)

上で一般化したようなことは、スプレッドシート利用時にも、度々出てきます。 そのため、「条件判定とそれによる行動の分岐」をするための関数が、 各種用意されています。

ここでは、その中でもっとも一般的な関数である if() という関数を使ってみます。

関数 if は、以下のようにして使います。

   if(「条件」;「条件が成立したときの処理」;「条件が成立しなかったときの処理」)

これら3つの引数の意味は、以下のとおりです。
  • 「条件」には、以下のような比較演算子を使った式を書きます。
  • 比較演算子
    条件式 意味
    A = B A と B は等しい
    A <> B A と B は等しくない
    A > B A は B より大きい
    A >= B A は B 以上
    A < B A は B より小さい
    A <= B A は B 以下

  • 「条件が成立したときの処理」には、条件が成立したときに実行する式や、 データ(文字や数字)を書きます。
  • 「条件が成立しなかったときの処理」には、 条件が成立しなかったときに実行する式や、 データ(文字や数字)を書きます。

それでは、合否判定の式として、関数 if を使ってみましょう。
「J」列に、 400点以上の人を「合」と、 400点未満の人を「否」と表示するようにしてみましょう。

「J2」セルに「合否」と書き、「J3」セルに、以下のように入力して下さい。

       =if(G3>=400;"合";"否")


ここで、上記の関数 if の引数に関する説明をします。
  • 「G3>=400」は、『セル「G3」が、400 以上』 かどうかを調べる条件文となっています。 400より大きいかどうか調べるのであれば、 「G3>400」となりますし、等しいかどうかを調べるのなら、 「G3=400」となります。
  • (註) 上式中の「G3」の部分は式中のセル番地の指定ですから、 直接文字を書かなくても、これまでどおり 「G3」セルをマウスポインタでクリックするだけで入力できます。

  • 「"合"」は、条件が成立したときの処理の部分です。 「合」という文字が 「"」(ダブルクォート)で囲んであるのは、 「合」という文字データであることを関数 if (スプレッドシート)に知らせるためです。 もし、このダブルクォートを書かないと、if は、 「合」を関数名かセルの名前と解釈するため、通常はエラーとなります。

  • 「"否"」は、条件が成立しないときの処理の部分です。 「否」という文字が 「"」(ダブルクォート)で囲んであるのは、 上の「合」の場合と同じです。

(註) 一般に、関数の引数として、「文字データ」を書くときには、上記のように、 ダブルクォートで囲んで下さい。

最後に、「J3」セルを「K6」までオートフィルでコピーすると、完成です。



エラー一覧

セルに表示される代表的なエラーを以下に示します。 ここでは、エラーの原因と対処法等も示します。

エラー表示
原因
対処 or ケース
###### セルが狭くて表示しきれない。 セル幅を広げる。(このままでも問題はない)
#DIV/0! ゼロで割るという計算をした。 ゼロ以外のデータを入れる。(IF()関数の利用)
#NAME 定義されていない名前を計算に使用した。 関数の綴りを間違えた。
#VALUE 計算に利用できないデータを使用した。 数値しか利用できないところに文字データを入れた。
Copyright Ryuichi Matsuba and Kenichi Sugitani 2005, All Rights Reserved