如何在 powerbi 的 dax 中进行 vlookup?

How to do a vlookup in dax in powerbi?

我知道我需要使用 LOOKUPVALUE(),但我似乎仍然找不到解决方案。这是我的 table:

DocumentNumber  Line  RODoc#
14C00001        AA    
14C00001        AB
14C00001        AC
14C00001A       AA
14C00001A       AB
14C00001B       AA
14R12345        AA    14C00001B
14R12346        AC    14C00001

我需要创建一个新列,其中 returns 某些内容(可以是 1、TRUE 或任何标识符)填充 DocumentNumber 和 Line 与 Line 和 RODoc# 匹配的行上的值。

因此,在我的示例中,结果将如下所示:

DocumentNumber  Line  RODoc#      NewColumn
14C00001        AA                
14C00001        AB 
14C00001        AC                1
14C00001A       AA
14C00001A       AB                
14C00001B       AA                1
14R12345        AA    14C00001B
14R12346        AC    14C00001

提前感谢您的帮助

试试这个

NewColumn = 
  VAR doc_number = [DocumentNumber]
  RETURN CALCULATE(
       DISTINCTCOUNT('Table'[RODoc#]), 
       ALL('Table'), 
       'Table'[RODoc#] = doc_number )

但您可能可以更好地对数据建模,以获得您想要的结果。

有很多方法可以实现你想要的

LOOKUPVALUE

LOOKUPVALUE =
IF (
    'Table'[DocumentNumber]
        = LOOKUPVALUE (
            'Table'[RODoc#],
            'Table'[RODoc#], 'Table'[DocumentNumber],
            'Table'[Line], 'Table'[Line]
        ),
    1
)

但我发现 LOOKUPVALUE 存在性能问题

MAXX Iterator

MAXX =
IF (
    'Table'[DocumentNumber]
        = MAXX (
            FILTER (
                'Table',
                'Table'[RODoc#] = EARLIER ( 'Table'[DocumentNumber] )
                    && 'Table'[Line] = EARLIER ( 'Table'[Line] )
            ),
            'Table'[RODoc#]
        ),
    1
)

IN Operator

IN =
IF (
    'Table'[DocumentNumber]
        = IF (
            ( 'Table'[DocumentNumber], 'Table'[Line] )
                IN SUMMARIZE ( 'Table', 'Table'[RODoc#], 'Table'[Line] ),
            'Table'[DocumentNumber]
        ),
    1
)