アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessで以下クエリを組みたいです。

%表示されているフィールド(フィールド名:乖離率)に対し、
それが10%以上の乖離率の場合、★
20%以上の乖離率の場合、★★
という結果を横のフィールド(フィールド名:評価)へ出したいと考えています。

そこで、以下の通り、フィールドへ埋め込んだのですが、エラーが発生してしまいました。
どこがおかしいのかをおしえて頂けないでしょうか。
(ちなみに乖離率のフィールドの値は85%,112%というように%が付いています)

評価: IIf(([乖離率]>=90% or [乖離率]<=110% , "★" , ([乖離率]>=80% or [乖離率]<=120) , "★★" ,NG)

よろしくお願いします。

A 回答 (2件)

エラーが出る場合、シンプルなテストケースを作ってそこから応用して行くとよいですよ。



ここでは2つの問題があります。

1.データ型の使い方。

2.IIf関数の使い方。

1については、「%がつく」とありますが、入力時点で「10%」と%を付けて入力している場合はデータの方は「文字列型」になります(A) そうではなく数値型で書式で「パーセンテージ」として、入力時10%の時は「10」とだけ入力したものが考えられます。

Aはテキストとしての”10%”ですので、数値に変換をする必要があります。
変換には今回はVal関数が良いと思います。

例:乖離率フィールドに"10%"と文字列がある場合、Val([乖離率])=10 となります。

なので、
[乖離率]>=90% or [乖離率]<=110% は
Val([乖離率])>=90 Or Val([乖離率])<=110 です。

Bは数値として0.1がフィールドに格納されます。

この場合は数値そのままが良いので、
[乖離率]>=90% or [乖離率]<=110% は
[乖離率]>=0.9 Or [乖離率]<=1.1 です。

2については、IIf関数は、
IIf(条件式,条件式の結果が真だった場合の処理,条件式の結果が偽だった場合の処理)
という形です。

「条件を満たしていたらこうしなさい、それ以外はこうしなさい」というもの。

なので、「それ以外」の時に「こんどは、この条件を満たしていたらこうしなさい、それ以外はなにもしなくていいです)」を追加するとよいのです。

まとめると、IIf(条件式1,”★”,IIF(条件式2,"★★", )) というIIfが入れ子(ネスト)された形になります。
    • good
    • 1
この回答へのお礼

無事にできました。ありがとうございました。

お礼日時:2018/11/05 22:23

iif関数の使い方が分かってないね。


第3引数がおかしいし、基本的に第3引数までしか設定しない。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2018/11/05 22:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!