• ベストアンサー

ACCESSの計算式について

ACCESS97にて、テーブルの1つのセル内に[1,2,3,4,5,・・・・]というように数字が入っていて、1が0点、2が5点、3が5点というように計算したいのですが、何かクエリーで作成できる計算式はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.5

再びです。 同じ場所で計算するのであれば =Iif([数値]=1,0,0)+(Iif([数値]=2,5,0))+(Iif([数値]=3,5,0)) とすれば合計がでます。 もし数値フィールドはそのままで、別フィールドにクエリで出した結果で計算をしたい場合は、 ちょっと方法が変わってきます。(この式をそのままかいてもできますけど) クエリで出した結果からさらに計算、というのはどうやらAccessではできないようなので。。。

ccg
質問者

お礼

ありがとうございました。作成してみます。

その他の回答 (4)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

KODAMARさんやranxさんの言うようにIIfを使うか 数値と点のテーブルを作ってリレーションを作るかですね。 数値に対応する点の変更が発生する確率が多ければ点のテーブルを作って数値と リレーションさせておいて点テーブルの点数を変更に合わせて再入力する。 点の変更が発生する確率が無いか若しくは少ないようでしたらIIfを使って 数値が1の場合は0、それ以外は・・・。それ以外の所に再度IIfを孫入れ して必要個数の点を記述していくのが良いと思います。 点の変更が有るようだったら点テーブルとリレーション。無いか少ないよう だったらIIfを使うのが良いと思いますよ。

ccg
質問者

お礼

ありがとうございました。IIF関数でやってみます。

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.3

一つのフィールドに違う意味を持つ複数の値(カンマ区切り)を入力すると言うことですか? [1,2,3,4,5]と入力して [0,5,5,7,7]と結果を出す? この場合ですと、そもそもDBの使い方にそぐわないと思います。 やってやれないこともないですが複雑な処理になると思います。 一つの値に対しある特定の結果を表示させたいのであれば、IIF関数でも良いですし、別に点数テーブルを作成してクエリーで結合しても可能です。

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.2

ACCESSならば、数値と点を対応づけるテーブルを別に作成して リレーションをはる方が楽だと思いますが...。

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.1

IIF文を使ってみてはいかがでしょう? 数値が入っているフィールドを「数値」とします。 =Iif([数値]=1,0,(Iif([数値]=2,5,(Iif([数値]=3,5,""))))) という感じでできるかと思います。

ccg
質問者

補足

ありがとうございます。また教えて頂きたいのですが、1,0 2,5 3,5 を 0と5と5・・・をたして合計点を出したいのですが。 まったくの素人です。お願いします。

関連するQ&A