【发布时间】:2017-12-16 00:14:29
【问题描述】:
我创建了一个 MS Access 数据库来跟踪工作中的一些项目。用户输入数据,然后在查询中聚合(使用计数或总和)以计算每个区域的实际值,使用 UNION 连接,然后与该区域的目标进行比较。我尝试输入 IIF 语句以有条件地计算 [Act]/[Goal] 的百分比,如果 [Act] 为空白则将其设为 0,如果 [Act] 大于 [Goal] 则将其设为 1,因此不会超过 100%。问题是它大部分时间都有效,但其他时候失败,没有明显的逻辑错误或我能弄清楚的原因。
有时即使看着它,它也无法分辨出 [Act] > [Goal],这很明显。这些数字都是整数,没有任何疯狂或格式差异。 [Met] 中的公式是我希望实现的。我添加了 [TEST] 字段以追溯它可能无法正常工作的地方,这表明 Access 并不总是向 [Act] > [Goal] 返回正确答案。
我的查询:
结果是什么(只是损坏的部分):
如您所见,它对大多数行都正常工作,但随后认为 149 小于 52,而 128 小于 3。因此,它生成的 [Met] 值超过 100%。
以前有没有人遇到过这种情况或有什么建议?我尝试过使用刷新,单击单元格按回车,我能想到的一切。
【问题讨论】:
-
它不允许我编辑(它包含的照片没有足够的点数?) [Met] 的完整公式是:Met: IIf(IsNull([Act]),0,IIf( [Act]>[Goal],1,Round([Act]/[Goal],2))) [TEST] 的完整公式为: TEST: IIf([Act]>[Goal], "greater", “小于”)
-
查询结果窗口中有一个很好的线索:文本值左对齐,而数值右对齐。
标签: ms-access ms-access-2013 calculated-field