从一个 table 获取值并根据其他列 DAX/Power 放入另一个 table 查询 M
Get values from one table and put in other table based on other column DAX/Power Query M
我需要帮助。
我有一个包含 2 列的 Table A - 第一个只是一些名称,另一个是一个值。我还有 Table B,有 3 列 - 拳头有一些名字,第二个叫 valMin,第三个叫 valMax。我想做的是从 Table B 中获取名称 (col1),然后根据 Table A 中的值将其放入 TableA 中的新列中,这样 val 来自 Table A在Table 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 尝试这样的操作 table:
NameB =
CALCULATE (
MAX ( TableB[NameB] ),
FILTER (
TableB,
TableA[ValA] >= TableB[ValMin]
&& TableA[ValA] <= TableB[ValMax]
)
)
当表 B 中的范围不重叠且没有空洞时,公式将始终 return 一个值。当存在重叠且多个值被 returned 时,MAX 函数将防止错误。当有空洞且找不到值时,它 return 是空白。
Marco Russo 在这里很好地介绍了这一点:Dax Patterns: Static Segmentation
将代码模式从该页面翻译成您的要求,会给出如下内容:
[Name B] =
CALCULATE (
VALUES ( TableB[NameB] ),
FILTER (
TableB,
TableA[valA] >= TableB[ValMin]
&& TableA[valA] < TableB[ValMax]
)
)
我需要帮助。 我有一个包含 2 列的 Table A - 第一个只是一些名称,另一个是一个值。我还有 Table B,有 3 列 - 拳头有一些名字,第二个叫 valMin,第三个叫 valMax。我想做的是从 Table B 中获取名称 (col1),然后根据 Table A 中的值将其放入 TableA 中的新列中,这样 val 来自 Table A在Table 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 尝试这样的操作 table:
NameB =
CALCULATE (
MAX ( TableB[NameB] ),
FILTER (
TableB,
TableA[ValA] >= TableB[ValMin]
&& TableA[ValA] <= TableB[ValMax]
)
)
当表 B 中的范围不重叠且没有空洞时,公式将始终 return 一个值。当存在重叠且多个值被 returned 时,MAX 函数将防止错误。当有空洞且找不到值时,它 return 是空白。
Marco Russo 在这里很好地介绍了这一点:Dax Patterns: Static Segmentation
将代码模式从该页面翻译成您的要求,会给出如下内容:
[Name B] =
CALCULATE (
VALUES ( TableB[NameB] ),
FILTER (
TableB,
TableA[valA] >= TableB[ValMin]
&& TableA[valA] < TableB[ValMax]
)
)