从一个表中获取值,并根据其他列DAX / Power Query M放入其他表中

问题描述 投票:2回答:2

我需要帮助。我有一个表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?非常感谢你的帮助!

powerbi dax powerquery powerbi-datasource powerbi-desktop
2个回答
3
投票

对结果表中的计算列名称尝试这样的操作:

NameB =
CALCULATE (
    MAX ( TableB[NameB] ),
    FILTER (
        TableB,
        TableA[ValA] >= TableB[ValMin]
            && TableA[ValA] <= TableB[ValMax]
    )
)

当TableB中的范围不重叠且没有孔时,公式将总是返回一个值。当存在重叠并返回多个值时,MAX函数将防止出错。如果有漏洞且未找到任何值,则返回空白。


1
投票

Marco Russo在这里非常清楚:Dax Patterns: Static Segmentation

将代码模式从该页面转换为您的需求,将提供如下内容:

[Name B] =
    CALCULATE (
        VALUES ( TableB[NameB] ),
        FILTER (
            TableB,
            TableA[valA] >= TableB[ValMin] 
            && TableA[valA] < TableB[ValMax] 
        )
    )
© www.soinside.com 2019 - 2024. All rights reserved.