次の方法で共有

MicrosoftのaccessのIIF関数について

Anonymous
2016-09-27T01:48:30+00:00

「負割」というフィールドがあり、0、1、2、3、200という数字が1つ選択できます。これを選択すると、「点数」というフィールドの数字と掛算されます。この合計額が「負担金」というフィールドに表示されるのですが、

・0,1,2,3のどれかを選択した場合、

IIf(([点数]*[負割] Mod 10)<5,[点数]*[負割]-([点数]*[負割] Mod 10),[点数]*[負割]-([点数]*[負割] Mod 10)+10))

で四捨五入されます。

・200という数字が選択されると、「点数」×「3」の合計が199まではそのまま計算された数字で表示されますが、200や200を超えても「200」にしかならない。という式を作りたいと思っています。

できないことはこの「200」という数字が選択されたときの関数で

IIf([負割]>199,(IIf([点数]*3)>200,200,(IIf(([点数]*3 Mod 10)<5,[点数]*3-([点数]*3 Mod 10),[点数]*3-([点数]*3 Mod 10)+10))),(IIf(([点数]*[負割] Mod 10)<5,[点数]*[負割]-([点数]*[負割] Mod 10),[点数]*[負割]-([点数]*[負割] Mod 10)+10)))

このように導き出したのですが、関数が正しくありません。

間違っているのがわかる方、いらっしゃったら教えてください。お願いします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2016-09-27T03:45:05+00:00

こんにちは、ずっちです。

序盤の表記で変なところがありました。

IIf([点数]*3)>200

他に習って、以下のように変更するとエラーはなくなりました。(正しいかまでは確認していません)

IIf([負割]>199,(IIf(([点数]*3)>200,200,(IIf(([点数]*3 Mod 10)<5,[点数]*3-([点数]*3 Mod 10),[点数]*3-([点数]*3 Mod 10)+10))),(IIf(([点数]*[負割] Mod 10)<5,[点数]*[負割]-([点数]*[負割] Mod 10),[点数]*[負割]-([点数]*[負割] Mod 10)+10))))

最初の[点数]*3の前にカッコの始まり、式の最後にカッコの終わりを追加しました。

余談ですが、エラーが起きた後、下図のように問題のあるあたりが選択状態になるので、

今後の修正の参考にしてみてください。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2016-10-01T05:50:05+00:00

    ずっちさん

    返信遅くなり申し訳ありません!

    ありがとうございます。

    ずっちさんの方法で無事、解決することができました。

    感謝です。

    本当にありがとうございます。助かりました!

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2016-09-27T02:55:43+00:00

    ずっちさん返信ありがとうございます。

    「指定した式に含まれる関数で、引数の数が一致しません」

    というエラーが出てきてしまうのが現状です。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2016-09-27T02:50:45+00:00

    こんにちは、ずっちです。

    「関数が正しくない」とは、

    エラーが起きるのでしょうか、希望した値が出てこないのでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません