Forum Discussion

atziovara's avatar
atziovara
Icon for Helper I rankHelper I
2 years ago
Solved

Weighted Average with double filter Issue

  • I want to compute the Weighted Average for one of the following Questions, based on the value of the Answer to another Question. For example, I would like to compute the Weighted Average of the Liquidity Problems Intensity for companies who expect that their Demand in the next 6 months will increase (Question= "Expected change in demand in the next 6 months", Answer = 1). My dataset is like this:

 

Table Name: TableBI

WaveCompany IndexCompany IDWeightsQuestionsAnswersWeighted AnswersPeriods
111-10,006Demand change compared to the previous 6 months-1-0,0062022 H2
111-10,006Expected change in demand in the next 6 months10,0062023 H1
111-10,006Liquidity problems intensity10,0062022 H2
111-10,006Expected change in employment002023 H1
121-20,001Demand change compared to the previous 6 months10,0012022 H2
121-20,001Expected change in demand in the next 6 months10,0012023 H1
121-20,001Liquidity problems intensity-1-0,0012022 H2
121-20,001Expected change in employment10,0012023 H1
131-30,0057Demand change compared to the previous 6 months10,00572022 H2
131-30,0057Expected change in demand in the next 6 months002023 H1
131-30,0057Liquidity problems intensity002022 H2
131-30,0057Expected change in employment002023 H1
212-10,006Demand change compared to the previous 6 months10,0062023 H1
212-10,006Expected change in demand in the next 6 months002023 H2
212-10,006Liquidity problems intensity002023 H1
212-10,006Expected change in employment002023 H2
222-20,001Demand change compared to the previous 6 months10,0012023 H1
222-20,001Expected change in demand in the next 6 months10,0012023 H2
222-20,001Liquidity problems intensity-1-0,0012023 H1
222-20,001Expected change in employment10,0012023 H2
232-30,0057Demand change compared to the previous 6 months10,00572023 H1
232-30,0057Expected change in demand in the next 6 months002023 H2
232-30,0057Liquidity problems intensity-1-0,00572023 H1
232-30,0057Expected change in employment10,00572023 H2

*Weighted Answers is calculated as: Weights * Answers

**In the column "Answers" -1 denotes decrease (or zero problems for Liquidity problems intensity), 0 denotes stability (or low to medium intensity problems), and 1 denotes increase (or high intensity problems).

 

  • I created a disconnected table "Selected Characteristics" as:

 

SelectedCharacteristics =
SUMMARIZE( 'TableBI',
    'TableBI'[Questions],
   'TableBI'[Answers])

 

  • I created the following measure:

 

Weighted Average =
VAR SelectedQuestion1 = SELECTEDVALUE('TableBI'[Questions])
VAR SelectedQuestion2 = SELECTEDVALUE('SelectedCharacteristics'[Questions])
VAR SelectedPrice = SELECTEDVALUE('SelectedCharacteristics'[Answers])
RETURN
DIVIDE(
    SUMX(
        FILTER(
            'TableBI',
            NOT(ISBLANK('TableBI'[Weighted Answers])) &&
            NOT(ISBLANK('TableBI'[Weights])) &&
            'TableBI'[Questions] = SelectedQuestion1 &&
           CALCULATE(
               VALUES('TableBI'[Answers]), 'TableBI'[Questions] = SelectedCharacteristic2, 'TableBI'[Τιμή] = SelectedPrice, ALLEXCEPT('TableBI', 'TableBI'[Company Index])
           )
        ), 'Table'[Weighted Answers]
    ),
    SUMX(
        FILTER(
            'TableBI',
            NOT(ISBLANK('TableBI'[Weighted Answers])) &&
            NOT(ISBLANK('TableBI'[Weights])) &&
            'TableBI'[Questions] = SelectedCharacteristic1 &&
            CALCULATE(
               VALUES('TableBI'[Answers]), 'TableBI'[Questions] = SelectedCharacteristic2, 'TableBI'[Answers] = SelectedPrice, ALLEXCEPT('TableBI', 'TableBI'[Company Index])
           )
        ),
        'TableBI'[Weights]
    )
)

 

 

  • I added two slicers: one with Questions from TableBI and one with Questions and Answers from SelectedCharacteristics.
  • I added a Clustered Column Chart that has Waves on its X-Axis and Weighted Average on its Y-Axis
  • The problem that I am encountering is that this formula is only working when selected Answer = 1 or Answer = -1, however, when Answer = 0 I get back no values at all on the graph.
  • Hi atziovara Please check enclosed file two different tabs for two scenarios.

    I created 6 different measures just for debug (it could be less number of measures).

    Results are as in your example

    Part 1 ratio = 0,50 and Part 2 ratio = -0,3276

    Picture below for Part 2.

     

5 Replies

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

    Hi atziovara must ask: why your measure for wei.avg is not something like:

    SUMX('Table', 'Table'[Weights]*'Table'[Answers])

    • atziovara's avatar
      atziovara
      Icon for Helper I rankHelper I

      @some_bih Thank you for your response!

      The formula for the Weighted Averagethat I am using is a simple one!

       

      It just sums the weighted answers (weights * answers) and divides the total by the sum of the weights.  I am using the typical mathematical formula: 
      Weighted Mean = Σ (wi * xi) / Σwi


      The filters that I am trying to use, which are neccesarry for drawing conclusions for business purposes, are creating the issue. I need to compute not only the Weighted Average for all the Questions posed to the companies, but I also for special cases, like "what is the weighted average of Liquidity problems intensity, for companies who expect that their demand will increase/stay stable in the next semester"?

       

      My measure is working perfectly for all cases except when SelectedPrice = 0.

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

        Hi atziovara weight avg. are in your case standard, which is good.

        So in short, you need weighted avg. for each question (as separate measure)?

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

    Hi atziovara Please check enclosed file two different tabs for two scenarios.

    I created 6 different measures just for debug (it could be less number of measures).

    Results are as in your example

    Part 1 ratio = 0,50 and Part 2 ratio = -0,3276

    Picture below for Part 2.