Forum Discussion
Comparing two different columns based on a third column
Hi all,
I have the following table:
UpdateLevel1 DomainAndSam AffectedObject
Level1 contoso\User1 contoso\Group1
Level1 contoso\Group9 contoso\Group10
<Blank> contoso\User2 contoso\Group2
<Blank> contoso\Group1 contoso\Group3
<Blank> contoso\Group10 contoso\Group11
I need to create a new column called UpdateLevel2 = "Level2" if the DomainAndSam column matches the AffectedObject of any of the records that have UpdateLevel1="Level1". From the example above, the output should look like this:
UpdateLevel1 DomainAndSam AffectedObject UpdateLevel2
Level1 contoso\User1 contoso\Group1 <Blank>
Level1 contoso\Group9 contoso\Group10 <Blank>
<Blank> contoso\User2 contoso\Group2 <Blank>
<Blank> contoso\Group1 contoso\Group3 Level2
<Blank> contoso\Group10 contoso\Group11 Level2
The UpdateLevel1 column is calculated as a measure.
Any help would be greatly appreciated!
Hi KipGum ,
Please follow these steps:
(1) Create a new measure to select Level1
UpdateLevel1 = IF ( ISFILTERED ( 'PrivilegedAccounts'[DomainAndSam] ), IF ( MAX( 'PrivilegedAccounts2'[DomainAndSam] ) IN VALUES ( PrivilegedAccounts[DomainAndSam] ), "Level1" ) )(2) Create a new measure to select Level2
UpdateLevel2 = VAR _in = SUMMARIZE ( FILTER ( ALL ( 'PrivilegedAccounts2' ), [DomainAndSam] IN VALUES ( PrivilegedAccounts[DomainAndSam] ) ), [AffectedObject] ) RETURN IF ( ISFILTERED ( 'PrivilegedAccounts'[DomainAndSam] ), IF ( MAX ( 'PrivilegedAccounts2'[DomainAndSam] ) IN _in, "Level 2" ) )
(3) The end resultBest Regards,
Gallen Luo
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
6 Replies
- tamerj1Community Champion
Hi KipGum
Please tryUpdateLevel2 = VAR CurrentLevel1 = [UpdateLevel1] VAR CurrentDomain = SELECTEDVALUE ( 'Table'[DomainAndSam] ) VAR T1 = CALCULATETABLE ( SUMMARIZE ( 'Table', 'Table'[DomainAndSam], 'Table'[AffectedObject] ), ALLSELECTED ( 'Table' ) ) VAR T2 = ADDCOLUMNS ( T1, "@Level1", VAR DomainSam = 'Table'[DomainAndSam] VAR AffectedObject = 'Table'[AffectedObject] RETURN CALCULATE ( [UpdateLevel1], ALL ( 'Table' ), 'Table'[DomainAndSam] = Domain, 'Table'[AffectedObject] = AffectedObject ) ) VAR T3 = FILTER ( T2, [@Level1] <> BLANK () ) VAR T4 = SELECTCOLUMNS ( T3, "@Object", [AffectedObject] ) RETURN IF ( ISBLANK ( CurrentLevel1 ), IF ( CurrentDomain IN T4, "Level2" ) )- KipGumMicrosoft Employee
I just tested this but it's returning only blanks. My table name is "PrivilegedAccounts2". I'm guessing that the line that reads:
'Table'[DomainAndSam] = Domain,was meant to read:
'Table'[DomainAndSam] = DomainSam,
Here's the code as I am testing it:
UpdateLevel2 =VAR CurrentLevel1 = [UpdateLevel1]VAR CurrentDomain =SELECTEDVALUE ( 'PrivilegedAccounts2'[DomainAndSam] )VAR T1 =CALCULATETABLE (SUMMARIZE ( 'PrivilegedAccounts2', 'PrivilegedAccounts2'[DomainAndSam], 'PrivilegedAccounts2'[AffectedObject] ),ALLSELECTED ( 'PrivilegedAccounts2' ))VAR T2 =ADDCOLUMNS (T1,"@Level1",VAR DomainSam = 'PrivilegedAccounts2'[DomainAndSam]VAR AffectedObject = 'PrivilegedAccounts2'[AffectedObject]RETURNCALCULATE ([UpdateLevel1],ALL ( 'PrivilegedAccounts2' ),'PrivilegedAccounts2'[DomainAndSam] = DomainSam,'PrivilegedAccounts2'[AffectedObject] = AffectedObject))VAR T3 =FILTER ( T2, [@Level1] <> BLANK () )VAR T4 =SELECTCOLUMNS ( T3, "@Object", [AffectedObject] )RETURNIF ( ISBLANK ( CurrentLevel1 ), IF ( CurrentDomain IN T4, "Level2" ) )Have any ideas?
- v-jialluo-msftCommunity Support
Hi KipGum ,
Please follow these steps:
(1) Create a new measure to select Level1
UpdateLevel1 = IF ( ISFILTERED ( 'PrivilegedAccounts'[DomainAndSam] ), IF ( MAX( 'PrivilegedAccounts2'[DomainAndSam] ) IN VALUES ( PrivilegedAccounts[DomainAndSam] ), "Level1" ) )(2) Create a new measure to select Level2
UpdateLevel2 = VAR _in = SUMMARIZE ( FILTER ( ALL ( 'PrivilegedAccounts2' ), [DomainAndSam] IN VALUES ( PrivilegedAccounts[DomainAndSam] ) ), [AffectedObject] ) RETURN IF ( ISFILTERED ( 'PrivilegedAccounts'[DomainAndSam] ), IF ( MAX ( 'PrivilegedAccounts2'[DomainAndSam] ) IN _in, "Level 2" ) )
(3) The end resultBest Regards,
Gallen Luo
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.