我正在尝试计算“completionDate”列中的日期与今天之间的天数
表名称为“事件 (2)”
我有一个名为“事件”的模拟器表,它正在工作。
代码:DaysClosed = DATEDIFF('Incidents (2)'[completionDate].[Dag];TODAY();DAY)
我得到的错误:
“无法确定表“事件 (2)”中“completionDate”列的变量“Dag”的单个值。当度量公式引用包含许多值的列而不指定聚合(例如最小值、最大值、计数或总和)以获得单个结果时,可能会发生这种情况。
您得到的错误很大程度上取决于您评估公式的方式,这就是为什么它可能适用于另一张表但不适用于此表。正如 @JBfreefolks 正确指出的那样,您正在指定一个需要标量值的列。这可以根据您评估公式的上下文(假设它是一个度量)来发挥作用。
例如,想象一个包含 100 行的数据集,平均分为四个类别 A、B、C、D。当您创建每个类别对应一行的表格视觉对象时,每行将有 25 个基础记录,这些记录将用于添加到该行的任何计算(度量或任何值的聚合)。这意味着,当使用带有列引用的 datediff 等公式时,它的第二个参数将获得 25 个值,而它期望的是 1 个值。
根据您想要的结果,有多种方法可以解决问题。
使用像 @JBfreefolks 建议的 MAX 这样的度量来确保从多个值中选择一个值。该度量仍将根据一组记录进行计算,但将通过采用最大日期对其进行汇总。
确保您使用的视觉对象中有类似 ID 的内容,这样它就不会分组,而是显示行上下文。添加到此视觉对象的任何度量也将在行上下文中进行评估。
请改用计算列。它们始终首先在行上下文中进行评估,然后可以在视觉效果中聚合它们的值。使用时TODAY()
,您可能需要至少每天刷新您的报告以使该列保持最新。
更复杂的方法是使用类似的迭代器SUMX() https://learn.microsoft.com/en-us/dax/sumx-function-dax or AVERAGEX() https://learn.microsoft.com/en-us/dax/averagex-function-dax强制在度量内部进行行上下文评估。
很高兴看到您已经解决了这个问题,仍在发布,因为它可能对其他人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)