【发布时间】:2016-11-23 17:45:00
【问题描述】:
我正在尝试将报表从 Excel 迁移到 Power BI,我希望有人可以帮助我,因为我是 DAX 新手。
我有两张表,一张(我们称之为表 A)包含一列计划的事件开始日期/时间,而另一个包含相同事件的实际开始日期/时间。计划开始时间和实际开始时间之间通常只有几分钟的差异。
我需要将表 B 中最接近的实际开始日期/时间与表 A 中计划的开始日期/时间相匹配。
没有可用于在两个表之间创建关系的现有列。
如果我能找到最接近的实际开始时间并将其拉入表 A,那么我可以从中创建关系。
在 Excel 中,我会使用这样的数组公式来执行此操作:(这里我只是假设所有内容都在每个表的 A 列中)
{=Index(TableB!A:A,match(min(abs(TableB!A:A-TableA!A1)),abs(TableB!:A:A-TableA!A1),0),1)}
我在网上找到了以下 DAX 代码,但即使有更高的更接近的值,它也只会返回下一个最小值。
If (
Hasonevalue ( TableA[A] ),
Calculate (
Max ( TableB[A] ),
Filter ( TableB, TableB[A] <= Values ( TableA[A] ) )
)
)
如果我建立一个日期/时间表,其中包含我的数据涵盖的日期范围的每一分钟(大约 2 年),我也试图找出一种方法来做到这一点,但正如我所说,我是新人到 DAX 并且无法弄清楚。
有没有什么方法可以使用类似于 (min(abs( DAX 中 excel 公式的一部分(因为它具有这些函数))在计算列中计算它?这是否可能没有现有关系,或者我会每次我想更新此报告时都必须继续在 Excel 中完成这部分工作吗?
非常感谢任何帮助。
【问题讨论】:
标签: match powerbi dax closest fuzzy