【问题标题】:MAXX function not working properlyMAXX 功能无法正常工作
【发布时间】:2018-02-22 09:59:49
【问题描述】:

我之前在 SharePoint StackExchange 网站上提出了这个问题,但它被认为是题外话。希望在这里能有更好的运气。 我的 Power BI 中使用的 DAX MAXX 函数(带有 FILTER)有问题。它仅在某些时候和“部分”以非常令人困惑的方式起作用。 我正在关注本教程:https://docs.microsoft.com/en-us/powerapps/sharepoint-scenario-build-report 并在此处给出了示例。 我正在使用这个公式:

MaxDaysPending = MAXX(
FILTER('Project Requests', 'Project Requests'[Approved]="Pending"),
'Project Requests'[RequestDateAge]
)

..到一个看起来像这样的表:

问题是这样的:在 Power BI Desktop 中:

如果我按原样运行公式,我得到的答案是“空白”。 (预期:316)

如果我将“待定”更改为“是”,在公式中,它(正确)给出答案 553!

如果我将“待定”更改为“否”,它(错误地)给出答案 368! (预期:458)。

同样:如果我将其更改为 MINX,它仅适用于“是”。

我曾尝试删除表格并重新执行此操作;然后它会工作一段时间(即使是“待定”),但在一些数据之后 表的变化左右,又是一样的东西!

Approved 列的数据类型为“单行文本”。 RequestDateAge 是一个计算列(它有自己的公式,我在此省略它以免使这个问题过于混乱,否则在上面给出的链接中都有描述) 有任何想法吗?其他人注意到他的公式有一些奇怪的行为吗?这是完全不合逻辑的。

我有一个“理论”:第一个公式是在 RequestDateAge 公式完成之前执行的,以某种方式,所以最终结果出错了吗? 编辑:不,这不是某种竞争条件。我尝试将 RequestDateAge 更改为未计算的数字列(如 Id 列),但行为相同!

【问题讨论】:

  • 它可能是您的已批准列中的额外空格。结果导致空白的一个原因可能是您的表有Pending 有一个额外的空间,而不是Pending。我会尝试修剪你的第一列额外空格。这可能会使您的公式按预期工作。
  • 我怀疑这就像@JohnFriel 建议的那样,但如果您可以发布一个重复您的问题的最小 pbix 文件,我会看看。
  • @JohnFriel 感谢您的宝贵回答!不,我看不到任何空白!数据位于 SharePoint 列表中,未添加空格。
  • @Alexis 谢谢!那太好了。我怎样才能把我的 pbix 文件借给你?电子邮件?
  • @PerryJ 还有一件事:你有一个Status = "Completed" 的报告级别过滤器。尝试删除该过滤器,看看您是否得到了预期的结果。

标签: excel powerbi dax


【解决方案1】:

检查您的关系。听起来像是一个糟糕的加入。

或者,将“项目请求”包装在 ALL 中。

MaxDaysPending = MAXX(
FILTER(ALL('Project Requests'), 'Project Requests'[Approved]="Pending"),
'Project Requests'[RequestDateAge]
)

【讨论】:

  • 谢谢 Frosty,但 Alexis 为我解决了这个问题,请参阅上面的 cmets,这是一个不应该存在的过滤器!