Forum Discussion
From Tableau to PowerBI DAX
Hello
I am currenctly trying to get diffrent reports from Tableau to DAX. I am really a beginner at DAX but can someone exaplain what the formula below in Tabluea does and help me convert it to PowerBI DAX. I think fixed does something with the level of detail??
IF { FIXED [FormulierId]:MAX(CONTAINS([Type melding (group)],'Reguliere melding'))} THEN { FIXED [FormulierId]:MAX('Reguliere melding')}
ELSEIF { FIXED [FormulierId]:MAX(CONTAINS([Type melding (group)],'Politiemelding'))} THEN { FIXED [FormulierId]:MAX('Politiemelding')}
END
many thanks!!
Hi tanako123
Your Tableau formula is the equivalent of a calculated column that says:
- For each row, examine all rows with [FormulierId] equal to the value in the current row
- If any of those rows has [Type melding (group)] with substring 'Reguliere melding' then return 'Reguliere melding'
- Else if any of those rows has [Type melding (group)] with substring 'Politiemelding' then return 'Politiemelding'
- Else return Null
The DAX equivalent would have to be a calculated column with code like this (I'm calling the table Data):
Calculated Column = IF ( NOT ( ISEMPTY ( CALCULATETABLE ( VALUES ( Data[Type melding (group)] ), ALLEXCEPT ( Data, Data[FormulierId] ), NOT ( ISERROR ( FIND ( "Reguliere melding", Data[Type melding (group)] ) ) ) ) ) ), "Reguliere melding", IF ( NOT ( ISEMPTY ( CALCULATETABLE ( VALUES ( Data[Type melding (group)] ), ALLEXCEPT ( Data, Data[FormulierId] ), NOT ( ISERROR ( FIND ( "Politiemelding", Data[Type melding (group)] ) ) ) ) ) ), "Politiemelding" ) )By the way, the Tableau formula is written a little strangely, since
{ FIXED [FormulierId]:MAX('Reguliere melding')}could be replaced with
'Reguliere melding'
but this could be because it started off as something more complex.
Regards,
Owen
3 Replies
- tanako123New Member
I have to move reports from Tableau to PowerBI, i came along this formula but what exactly did he do?
can someone please help me convert this to PowerBI DAX
IF { FIXED [FormulierId]:MAX(CONTAINS([Type melding (group)],'Reguliere melding'))} THEN { FIXED [FormulierId]:MAX('Reguliere melding')}
ELSEIF { FIXED [FormulierId]:MAX(CONTAINS([Type melding (group)],'Politiemelding'))} THEN { FIXED [FormulierId]:MAX('Politiemelding')}
ENDThanks!
- v-xjiin-msft
Solution Sage
Hi tanako123,
Honestly, I haven't used Tableau before. So I'm not familiar with the formula in Tabluea or even convert it to DAX.
Thereby, could you please make a explaination about the logic of this formula and share us some sample data and the expected result? We can create a new DAX formula based on these information for you. :smileyhappy:
Thanks,
Xi Jin. - OwenAuger
Super User
Hi tanako123
Your Tableau formula is the equivalent of a calculated column that says:
- For each row, examine all rows with [FormulierId] equal to the value in the current row
- If any of those rows has [Type melding (group)] with substring 'Reguliere melding' then return 'Reguliere melding'
- Else if any of those rows has [Type melding (group)] with substring 'Politiemelding' then return 'Politiemelding'
- Else return Null
The DAX equivalent would have to be a calculated column with code like this (I'm calling the table Data):
Calculated Column = IF ( NOT ( ISEMPTY ( CALCULATETABLE ( VALUES ( Data[Type melding (group)] ), ALLEXCEPT ( Data, Data[FormulierId] ), NOT ( ISERROR ( FIND ( "Reguliere melding", Data[Type melding (group)] ) ) ) ) ) ), "Reguliere melding", IF ( NOT ( ISEMPTY ( CALCULATETABLE ( VALUES ( Data[Type melding (group)] ), ALLEXCEPT ( Data, Data[FormulierId] ), NOT ( ISERROR ( FIND ( "Politiemelding", Data[Type melding (group)] ) ) ) ) ) ), "Politiemelding" ) )By the way, the Tableau formula is written a little strangely, since
{ FIXED [FormulierId]:MAX('Reguliere melding')}could be replaced with
'Reguliere melding'
but this could be because it started off as something more complex.
Regards,
Owen