Forum Discussion

mapko's avatar
mapko
Icon for Helper I rankHelper I
10 years ago
Solved

Equivalent to QV's Indirect Set Analysis

All,

 

I am an advanced QV developer and looking for a PBI equivalent to QV's indirect set analysis; the P and E functions.

 

For example, the following set analysis will calculate the average value for all excluded companies within a sector. Say I have 10 companies, selected one and this expression will perform average across remaining 9.

 

avg({<Company_Name= e(Company_Name), Sector= {'$(vSector)'}>} Value) 

 

Hope someone can share some ideas.

 

Thanks!

  • Hi mapko

     

    You can use the EXCEPT function to return the complement of the selected values of a particular column, similar to your example with the E function.

     

    Here is an example pattern using arbitrary table/column/measure names:

    =
    CALCULATE(
        [Value],
    EXCEPT(
    ALL( Company[Company_Name] ),
    VALUES( Company[Company_Name] )
    )
    )

     

    I'm not really familiar with QlikView or the P & E functions (apart from Bing-ing them last night), but as for the P (possible values) function, I'm sure there are ways to replicate its behaviour in Power BI as well.

     

4 Replies

  • Hi mapko

     

    You can use the EXCEPT function to return the complement of the selected values of a particular column, similar to your example with the E function.

     

    Here is an example pattern using arbitrary table/column/measure names:

    =
    CALCULATE(
        [Value],
    EXCEPT(
    ALL( Company[Company_Name] ),
    VALUES( Company[Company_Name] )
    )
    )

     

    I'm not really familiar with QlikView or the P & E functions (apart from Bing-ing them last night), but as for the P (possible values) function, I'm sure there are ways to replicate its behaviour in Power BI as well.

     

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

    mapko With slight variation you can do similar in power bi desktop. Just create a measure as below which will give you average of values of all the selection you will make. So instead of getting avergae for ones that you don't select, instead select all that you want the average for.

     

    Measure = CALCULATE( AVERAGE(YOURTABLE[valueColumn]), FILTERS(YOURTABLE[companyColumn]))

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

      ankitpatira, thank you for your reply. I don't think this is a good workaround for me. Simply because there will be cases when I have to compare a single company's values against a big number of other companies and I can't expect from my users to hand pick those. Hope that makes sense.