- ベストアンサー
ACCESSの計算式について
ACCESS97にて、テーブルの1つのセル内に[1,2,3,4,5,・・・・]というように数字が入っていて、1が0点、2が5点、3が5点というように計算したいのですが、何かクエリーで作成できる計算式はありますか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
再びです。 同じ場所で計算するのであれば =Iif([数値]=1,0,0)+(Iif([数値]=2,5,0))+(Iif([数値]=3,5,0)) とすれば合計がでます。 もし数値フィールドはそのままで、別フィールドにクエリで出した結果で計算をしたい場合は、 ちょっと方法が変わってきます。(この式をそのままかいてもできますけど) クエリで出した結果からさらに計算、というのはどうやらAccessではできないようなので。。。
その他の回答 (4)
- O_cyan
- ベストアンサー率59% (745/1260)
KODAMARさんやranxさんの言うようにIIfを使うか 数値と点のテーブルを作ってリレーションを作るかですね。 数値に対応する点の変更が発生する確率が多ければ点のテーブルを作って数値と リレーションさせておいて点テーブルの点数を変更に合わせて再入力する。 点の変更が発生する確率が無いか若しくは少ないようでしたらIIfを使って 数値が1の場合は0、それ以外は・・・。それ以外の所に再度IIfを孫入れ して必要個数の点を記述していくのが良いと思います。 点の変更が有るようだったら点テーブルとリレーション。無いか少ないよう だったらIIfを使うのが良いと思いますよ。
お礼
ありがとうございました。IIF関数でやってみます。
- TMINET
- ベストアンサー率32% (45/140)
一つのフィールドに違う意味を持つ複数の値(カンマ区切り)を入力すると言うことですか? [1,2,3,4,5]と入力して [0,5,5,7,7]と結果を出す? この場合ですと、そもそもDBの使い方にそぐわないと思います。 やってやれないこともないですが複雑な処理になると思います。 一つの値に対しある特定の結果を表示させたいのであれば、IIF関数でも良いですし、別に点数テーブルを作成してクエリーで結合しても可能です。
- ranx
- ベストアンサー率24% (357/1463)
ACCESSならば、数値と点を対応づけるテーブルを別に作成して リレーションをはる方が楽だと思いますが...。
- KODAMAR
- ベストアンサー率26% (267/1006)
IIF文を使ってみてはいかがでしょう? 数値が入っているフィールドを「数値」とします。 =Iif([数値]=1,0,(Iif([数値]=2,5,(Iif([数値]=3,5,""))))) という感じでできるかと思います。
補足
ありがとうございます。また教えて頂きたいのですが、1,0 2,5 3,5 を 0と5と5・・・をたして合計点を出したいのですが。 まったくの素人です。お願いします。
お礼
ありがとうございました。作成してみます。