Forum Discussion
Calculating Weighted Sales
- 11 months ago
Hi Ilija89 ,
Thank you for the response, I have tried the solution based on your logic, but it is not giving exact result. you need to change your data and data model.
Please refer below two solutions.
1. Direct Sales Allocated :=
SUMX(
FILTER( Sales, Sales[Sales Type] = "Direct" ),
VAR CatCust = Sales[Category-Customer Code]
VAR Amount = Sales[Sales amount]
VAR CurrentRep = SELECTEDVALUE( Weights[Sales Representative] )
VAR WeightVal =
CALCULATE(
MAX( Weights[Weight] ),
FILTER(
Weights,
Weights[Category-Customer Code] = CatCust
&& Weights[Sales Representative] = CurrentRep
)
)
RETURN Amount * COALESCE( WeightVal, 0 )
)Indirect Sales Allocated :=
SUMX(
FILTER( Sales, Sales[Sales Type] = "Indirect" ),
IF( Sales[Sales Rep] = SELECTEDVALUE( Weights[Sales Representative] ),
Sales[Sales amount],
0
)
)please refer output snap and PBIX file.
2.
Direct Sales Allocated =VAR CurrentRep = SELECTEDVALUE ( Weights[Sales Representative] )RETURNSUMX (VALUES ( Weights[Category-Customer Code] ),VAR CatCust = SELECTEDVALUE ( Weights[Category-Customer Code] )VAR CustCode = SELECTEDVALUE ( Weights[Customer code] )VAR Cat = SELECTEDVALUE ( Weights[Category] )VAR TotalDirectForCust =CALCULATE (SUM ( Sales[Sales amount] ),Sales[Sales Type] = "Direct",Sales[Customer code] = CustCode)VAR WeightVal =CALCULATE (MAX ( Weights[Weight] ),Weights[Category-Customer Code] = CatCust,Weights[Sales Representative] = CurrentRep)RETURNTotalDirectForCust * COALESCE ( WeightVal, 0 ))Indirect Sales Allocated =VAR CurrentRep = SELECTEDVALUE ( Weights[Sales Representative] )RETURNCALCULATE (SUM ( Sales[Sales amount] ),Sales[Sales Type] = "Indirect",Sales[Sales Rep] = CurrentRep)I hope this information helps. Please do let us know if you have any further queries.
Regards,
Dinesh
Hi Ilija89
Thanks to v-dineshya , I think you need to update the measure as follows:
Thanks Selva-Salimi! I tried it, but it asigns indirect values for all customers for slaes reps that we have indirect sales. Do you know what we should change in calculation?
- Selva-Salimi1 year ago
Solution Sage
Ilija89 ,
Are you sure that you use "SELECTEDVALUE"?? would you please share your measure? and also would you please tell me about the relations between the tables? are they "single" direction?
- Ilija891 year ago
Helper I
hI Selva-Salimi , latest measure attached:
Weighted Sales =SUMX (Sales,SWITCH (TRUE(),Sales[Sales Type] = "Indirect" &&SELECTEDVALUE ( Weights[Sales Representative] ) = Sales[Sales Rep],Sales[Sales amount],Sales[Sales Type] = "Direct",Sales[Sales amount] *CALCULATE (MAX ( Weights[Weight] ),TREATAS ( { Sales[Category-Customer Code] }, Weights[Category-Customer Code] ),TREATAS ( VALUES ( Weights[Sales Representative] ), Weights[Sales Representative] )),0))Relations are "single" direction.- Selva-Salimi1 year ago
Solution Sage
Ilija89 ,
would you please update the "indirect" part, the same as what I have mentioned in previous post? I mean...
Sales[Sales Type] = "Indirect",CALCULATE(sum(Sales[Sales amount]),FILTER(Sales,Sales[Sales Rep]=SELECTEDVALUE(Weights[Sales Representative]))),