Forum Discussion
Dynamically Generating and Appending Tables Using DAX
I have a table that looks like this:
And from that table I want to create a new table that looks like this:
The measure needs to filter the statusperiod (ex. <= 47), add a new column (status_id, 47) and add that to a second table that does the same thing with the next highest statusperiod number (<= 45) and so on until it hits the lowest number in the statusperiod colunm. I know I can do this by creating multiple tables and combining them, but I want it done dynamically so that when more data is added, I don't need to code a new table.
Any help would be appreciated. Thanks!
3 Replies
- barritownSolution Sage
Hello vsorensen,
I'd propose such a solution:
However it has limitations - it won't work properly if you have a different combination of task_id and (status_id, statusperiod.
Here's the [DAX] code in text format for convenience:
new_table = VAR col2 = FILTER ( VALUES( data[statusperiod] ), [statusperiod] < MAX ( data[status_id] ) ) VAR col1 = SELECTCOLUMNS ( col2, "status_id", [statusperiod] ) VAR surplus = CROSSJOIN ( FILTER ( CROSSJOIN ( col1, col2 ), [status_id] >= [statusperiod] ), VALUES ( data[task_id] ) ) RETURN UNION ( data, surplus )- vsorensenFrequent Visitor
This is great, thank you! Unfortunately, I realized I made a mistake in my initial question: my original table does not have the status_id column but I would like to add it when the new table is generated. How would I do that? Also, how can I tweak this I if I have one more column? I've added a screenshot below of a better representation of my data.
- barritownSolution Sage
Can you also provide a table which is supposed to be your final result?