Last active
August 30, 2023 19:18
-
-
Save evansekeful/6e0f81056fbd73f56f2e17c40f88bdb7 to your computer and use it in GitHub Desktop.
modeling_dax_patterns
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Standard Fact Table Pattern | |
EVALUATE | |
SUMMARIZECOLUMNS( | |
// Define dimensions for DAX query at lowest level of granularity needed | |
'Table1'[Field1], | |
'Table2'[Field2], | |
// Apply filters to remove any unneeded data | |
FILTER( -- single filter example | |
VALUES('FilterTable1'[FilterField1]), | |
([FilterField1] = "FilterValue1")), | |
FILTER( -- multi-value filter example | |
VALUES('FilterTable2'[FilterField2]), | |
([FilterField2] = "MultiValue1" || [FilterField2] = "MultiValue2")), | |
FILTER( -- complex multi-value filter example | |
SUMMARIZE('FilterTable3', [FilterField3-1], [FilterField3-2]), | |
([FilterField3-1] = "ComplexValue1" || [FilterField3-1] = "ComplexValue2") && | |
([FilterField3-2] <> "ComplexValue3")), | |
// NOTE: Filtering on relative year if available in the data source will improve rollover | |
FILTER( | |
VALUES('Calendar'[Relative Year]), | |
([Relative Year] = "CY")), | |
// Define measures | |
"Measure1", CALCULATE([CubeMeasure1]), | |
) | |
// Simple DIM table | |
EVALUATE | |
SUMMARIZE('Table','Table'[Column1],'Table'[Column2]) | |
// Filtered DIM Table | |
EVALUATE | |
SUMMARIZECOLUMNS('Table'[Column1],'Table'[Column2],, | |
FILTER('Table', 'Table'[FilterField] = "FilterValue") | |
) | |
// Custom column DIM table w/ filter | |
EVALUATE | |
CALCULATETABLE( | |
ADDCOLUMNS( | |
SUMMARIZE('Table','Table'[Column1],'Table'[Column2]), | |
"CustomColumn", CONCATENATE('Table'[Column1],CONCATENATE("-",'Table'[Column2]))) | |
), | |
FILTER('Table','Table'[FilterField] = "FilterValue") | |
) | |
// Calculate a table using variables | |
VAR Variable = "Variable" | |
VAR CalculatedTable = CALCULATETABLE( | |
ADDCOLUMNS( | |
SUMMARIZE('Table','Table'[Column1],'Table'[Column2]), | |
"CustomColumn", CONCATENATE('Table'[Column1],CONCATENATE("-",Variable))) | |
), | |
FILTER('Table','Table'[FilterField] = "FilterValue") | |
) | |
RETURN | |
CalculatedTable | |
// Calculate current fiscal year with 6 month offset | |
VAR FiscalYear = IF(MONTH(NOW()) <= 6, | |
YEAR(NOW()), | |
YEAR(NOW())+1) | |
// Calculate total by other columns | |
"Combined Total Measure", CALCULATE(SUM('Table'[Base Value]), | |
ALLEXCEPT('Table', 'Table'[GroupBy1], 'Table'[GroupBy2])) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment