从一个 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] 
        )
    )