Skip to content

Instantly share code, notes, and snippets.

@evansekeful
Last active August 30, 2023 19:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save evansekeful/6e0f81056fbd73f56f2e17c40f88bdb7 to your computer and use it in GitHub Desktop.
Save evansekeful/6e0f81056fbd73f56f2e17c40f88bdb7 to your computer and use it in GitHub Desktop.
modeling_dax_patterns
// 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