- ベストアンサー
ACCESSでABC判定をしたい
ACCESSでランクというか、判定というか、そんな評価みたいなことをしたいです。 例えば、学校のテストで 90点~100点をA 50点~89点B その他をC というようなことをできればクエリを使ってやりたいです。 もしできるのであれば、ご存知のかた教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
IIf関数でもできますが、こういう場合はSwitch関数がおすすめです。 フィールド欄に下記の式を設定します。 ランク: Switch(([点数]<=100 AND [点数]>=90,"A",[点数]>=50,"B",[点数])>=0,"C")
その他の回答 (3)
- chayamati
- ベストアンサー率41% (260/624)
- piroin654
- ベストアンサー率75% (692/917)
テーブル名を「テーブル1」とし、テーブルに「点数」というフィールドが あるとします。「点数」のフィールドの型は数値型とします。 (1)方法その1 以下のようなクエリでランクが設定できます。 SELECT IIf([テーブル1]![点数]<=100 And [テーブル1]![点数]>=90,"A",IIf([テーブル1]![点数]<=89 And [テーブル1]![点数]>=50,"B","C")) AS ランク FROM テーブル1; 上記は、以下のようにしてランクを設定していますが、 ランク: IIf([テーブル1]![点数]<=100 And [テーブル1]![点数]>=90,"A",IIf([テーブル1]![点数]<=89 And [テーブル1]![点数]>=50,"B","C")) たとえば、 >90点~100点をA のような場合は、条件の記述を、 [テーブル1]![点数]<=100 And [テーブル1]![点数]>=90 のように、条件をANDで結んで一つの条件としています。このようにIIf関数の入れ子 で複数の条件を設定して、ランクをつけることができます。 (2)方法その2 以下の関数を標準モジュールに登録します。 Function funcRank(ByVal lnData As Long) As String Select Case lnData Case 90 To 100 funcRank = "A" Case 50 To 89 funcRank = "B" Case Else funcRank = "C" End Select End Function 以下のようなクエリを作成します。 SELECT funcRank([テーブル1]![点数]) AS ランク FROM テーブル1; funcRankという関数で点数を評価し、 (1)と同様に、ランクが設定されます。
- NYAN99
- ベストアンサー率35% (32/90)
IF関数でできますね。 IF関数を調べてみてください。 http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/if_is.htm