Forum Discussion
Compare Plan and actual data
- 7 years ago
Hi bluetronics
Although I believe it would be more convenient to do this in the query editor (M), you can also try creating a new calculated table with DAX:
TestTable = VAR _BaseTable = DISTINCT ( UNION ( SUMMARIZECOLUMNS ( Actual[Customer]; Actual[Product] ); SUMMARIZECOLUMNS ( Plan[Customer]; Plan[Product] ) ) ) RETURN ADDCOLUMNS ( _BaseTable; "Difference"; LOOKUPVALUE ( Actual[Qty]; Actual[Customer]; [Customer]; Actual[Product]; [Product] ) - LOOKUPVALUE ( Plan[Qty]; Plan[Customer]; [Customer]; Plan[Product]; [Product] ) ) - 7 years ago
HI @ AIB,
Your instruction was great to work in general but I got an issue with "A table of multiple values was supplied where a single value was expected." when I apply to big data. And I found it why but I don't know how to clear the issue. Can you help me agin?
I can see the error message when there are differnt lookupvalue. Do you happen to know how to do if I want to sum of Qty for the same customer and product.
Regards,
- 7 years ago
NewTable = VAR _BaseTable = DISTINCT ( UNION ( SUMMARIZECOLUMNS ( Actual[Customer]; Actual[Product] ); SUMMARIZECOLUMNS ( Plan[Customer]; Plan[Product] ) ) ) RETURN ADDCOLUMNS ( _BaseTable; "Difference"; VAR _CurrentCustomer=[Customer] VAR _CurrentProduct=[Product] RETURN CALCULATE(SUM(Actual[Qty]); Actual[Customer]=_CurrentCustomer; Actual[Product]=_CurrentProduct) - CALCULATE(SUM(Plan[Qty]); Plan[Customer]=_CurrentCustomer; Plan[Product]=_CurrentProduct) ) - 7 years ago
Or actually we could have another version with two nested ADDCOLUMNS to make the code a bit less verbose and avoid some recalculations which I'm guessing would be faster although I cannot be positive about it
NewTableExtended_v2 = VAR _BaseTable = DISTINCT ( UNION ( SUMMARIZECOLUMNS ( Actual[Customer]; Actual[Product] ); SUMMARIZECOLUMNS ( Plan[Customer]; Plan[Product] ) ) ) RETURN ADDCOLUMNS ( ADDCOLUMNS ( _BaseTable; "Plan-Qty"; VAR _CurrentCustomer = [Customer] VAR _CurrentProduct = [Product] VAR _CurrentPlan = CALCULATE ( SUM ( Plan[Qty] ); Plan[Customer] = _CurrentCustomer; Plan[Product] = _CurrentProduct ) RETURN _CurrentPlan; "Actual-Qty"; VAR _CurrentCustomer = [Customer] VAR _CurrentProduct = [Product] VAR _CurrentActual = CALCULATE ( SUM ( Actual[Qty] ); Actual[Customer] = _CurrentCustomer; Actual[Product] = _CurrentProduct ) RETURN _CurrentActual ); "Diff. Qty"; [Actual-Qty] - [Plan-Qty] )
Hi bluetronics
Although I believe it would be more convenient to do this in the query editor (M), you can also try creating a new calculated table with DAX:
TestTable =
VAR _BaseTable =
DISTINCT (
UNION (
SUMMARIZECOLUMNS ( Actual[Customer]; Actual[Product] );
SUMMARIZECOLUMNS ( Plan[Customer]; Plan[Product] )
)
)
RETURN
ADDCOLUMNS (
_BaseTable;
"Difference"; LOOKUPVALUE (
Actual[Qty];
Actual[Customer]; [Customer];
Actual[Product]; [Product]
)
- LOOKUPVALUE ( Plan[Qty]; Plan[Customer]; [Customer]; Plan[Product]; [Product] )
)
HI @AIB,
Thanks a lot! it works excactly what I would like to see.
Best Regards,
SH Lee