如何在 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
)
我知道我需要使用 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
)