Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

DAX: Average per group

Hi there, 

Another DAX question from me. 

 

I am trying to show the percentage of potential sales achieved per category. 
I would like the actual sales / potential sales based on sales category. 

My problem is dat the category is in two different tables (one for actuals and one for potentials). This has me completely confused. 

 

Unfortunately I cannot share my file, so I'll do my best to describe the situation below. 


I have one table with sales details, which also includes a details key. In the details table I have the category for the detail key. 
There are several rows for each date/detail key combination as I am tracking sales for multiple stores. 

 

In a separate table I have potential sales per product, with a column CategoryName. 

 

So in summary, the data is as follows: 


AdditionalDetails

DetailKeyCategoryName
1Fruit
2Vegetable
3Meat
4Vegetable
5Fruit

 

Actual Sales

DateDetailKeySales Quantity
01-01-202011
01-01-202022
02-01-202034
03-01-202048
03-01-202059
03-01-202013

 

Potential Sales

DateCategoryNamePotential Sales
01-01-2020Fruit154
01-01-2020Vegetable654
01-01-2020Meat16
02-01-2020Meat48
02-01-2020Vegetable56
02-01-2020Fruit758

 

Thanks in advance for your help!! 



  • I did this:

     

    Measure = 
        VAR __Category = MAX(AdditionalDetails[CategoryName])
        VAR __Date = MAX('ActualSales'[Date])
        VAR __PotentialSales = LOOKUPVALUE(PotentialSales[Potential Sales],PotentialSales[CategoryName],__Category,PotentialSales[Date],__Date)
    RETURN
        DIVIDE(SUM(ActualSales[Sales Quantity]),__PotentialSales)

     

    PBIX is attached.

3 Replies

  • Anonymous 

    Populate the DetailKey from AdditionalDetails

    in column Potential Sales
    DetailKey = maxx(filter(AdditionalDetails, AdditionalDetails[CategoryName] ='Potential Sales'[CategoryName]),AdditionalDetails[DetailKey])

     

    Now join both table with AdditionalDetails and date dimension and you can use formula

    Divide(sum(sales Qty) /sum( potential sales))

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    I did this:

     

    Measure = 
        VAR __Category = MAX(AdditionalDetails[CategoryName])
        VAR __Date = MAX('ActualSales'[Date])
        VAR __PotentialSales = LOOKUPVALUE(PotentialSales[Potential Sales],PotentialSales[CategoryName],__Category,PotentialSales[Date],__Date)
    RETURN
        DIVIDE(SUM(ActualSales[Sales Quantity]),__PotentialSales)

     

    PBIX is attached.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks!