PowerBI - DAX - 根据条件比较 2 列后删除重复项并返回 YES
PowerBI - DAX - Removing Duplicates and Returning YES after comparing 2 columns based on a condition
您好,我有 table(EmpDetailsail),详细信息如下。
固体 | VDM_Name
AA001 | DS3001
AA002 | DS3002
AA001 | DS3007
AA002 | DS3002
在这里,我有 SOID (AA001),它可以访问 2 个 VDM(DS3001 和 DS3007)。此外,AA002 是 table 中的重复条目。
- 我想删除重复的条目(比如从 table 中删除 AA002 的一个条目)。
- 删除重复项后,如果 SOID 可以访问超过 1 个 VDM,我想创建一个显示“是”的“访问”列。
固体 | VDM_Name |访问
AA001 | DS3001 |是
AA002 | DS3002 |否
AA001 | DS3007 |是
我如何使用 DAX 或 M 查询实现此目的?请帮助
首先删除幂查询中的重复项
let
Source = Excel.Workbook(File.Contents("C:\Ashok\Power BI\Stack Overflow\Data_20oct21.xlsx"), null, true),
Data_Sheet = Source{[Item="Data",Kind="Sheet"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Data_Sheet,{{"Column1", type text}, {"Column2", type text}}),
#"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"SOID ", type text}, {" VDM_Name", type text}}),
#"Removed Duplicates" = Table.Distinct(#"Changed Type1")
in
#"Removed Duplicates"
然后写一个dax实现结果
和DAX
_tbl =
SELECTCOLUMNS (
ADDCOLUMNS (
SUMMARIZE (
ADDCOLUMNS (
'Table',
"allRank",
MAXX (
FILTER ( 'Table', [SOID] = EARLIER ( 'Table'[SOID] ) ),
RANKX (
FILTER ( ALL ( 'Table' ), 'Table'[SOID] = EARLIER ( 'Table'[SOID] ) ),
'Table'[VDM],
,
ASC,
DENSE
)
)
),
[SOID],
[VDM],
[allRank]
),
"Access", IF ( [allRank] > 1, "Yes", "No" )
),
"SOID", [SOID],
"VDM", [VDM],
"Access", [Access]
)
您好,我有 table(EmpDetailsail),详细信息如下。
固体 | VDM_Name
AA001 | DS3001
AA002 | DS3002
AA001 | DS3007
AA002 | DS3002
在这里,我有 SOID (AA001),它可以访问 2 个 VDM(DS3001 和 DS3007)。此外,AA002 是 table 中的重复条目。
- 我想删除重复的条目(比如从 table 中删除 AA002 的一个条目)。
- 删除重复项后,如果 SOID 可以访问超过 1 个 VDM,我想创建一个显示“是”的“访问”列。
固体 | VDM_Name |访问
AA001 | DS3001 |是
AA002 | DS3002 |否
AA001 | DS3007 |是
我如何使用 DAX 或 M 查询实现此目的?请帮助
首先删除幂查询中的重复项
let
Source = Excel.Workbook(File.Contents("C:\Ashok\Power BI\Stack Overflow\Data_20oct21.xlsx"), null, true),
Data_Sheet = Source{[Item="Data",Kind="Sheet"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Data_Sheet,{{"Column1", type text}, {"Column2", type text}}),
#"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"SOID ", type text}, {" VDM_Name", type text}}),
#"Removed Duplicates" = Table.Distinct(#"Changed Type1")
in
#"Removed Duplicates"
然后写一个dax实现结果
和DAX
_tbl =
SELECTCOLUMNS (
ADDCOLUMNS (
SUMMARIZE (
ADDCOLUMNS (
'Table',
"allRank",
MAXX (
FILTER ( 'Table', [SOID] = EARLIER ( 'Table'[SOID] ) ),
RANKX (
FILTER ( ALL ( 'Table' ), 'Table'[SOID] = EARLIER ( 'Table'[SOID] ) ),
'Table'[VDM],
,
ASC,
DENSE
)
)
),
[SOID],
[VDM],
[allRank]
),
"Access", IF ( [allRank] > 1, "Yes", "No" )
),
"SOID", [SOID],
"VDM", [VDM],
"Access", [Access]
)