我需要帮助。我有一个表A有2列 - 第一个是一些名称,另一个是值。我还有表B的3列 - 拳头有一些名字,第二个叫做valMin和第三个valMax。我要做的是从表B中获取名称(col1)并根据表A中的值放入TableA中的新列,这样表A中的val介于表B中的valMin和valMax之间。示例:
TableA TableB Result
|NameA|valA| |NameB|ValMin|ValMax| |NameA|valA|NameB|
------------ --------------------- ------------------
|Name1| 7 | |BBBB | 1 | 5 | |Name1| 7 |CCCC |
|NAme2| 3 | |CCCC | 6 | 10 | |NAme2| 3 |BBBB |
是否可以使用DAX或Power Query M?非常感谢你的帮助!
对结果表中的计算列名称尝试这样的操作:
NameB =
CALCULATE (
MAX ( TableB[NameB] ),
FILTER (
TableB,
TableA[ValA] >= TableB[ValMin]
&& TableA[ValA] <= TableB[ValMax]
)
)
当TableB中的范围不重叠且没有孔时,公式将总是返回一个值。当存在重叠并返回多个值时,MAX函数将防止出错。如果有漏洞且未找到任何值,则返回空白。
Marco Russo在这里非常清楚:Dax Patterns: Static Segmentation
将代码模式从该页面转换为您的需求,将提供如下内容:
[Name B] =
CALCULATE (
VALUES ( TableB[NameB] ),
FILTER (
TableB,
TableA[valA] >= TableB[ValMin]
&& TableA[valA] < TableB[ValMax]
)
)