Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
NNaj
Helper IV
Helper IV

Filtering the columns used in a measure calculation

Hi All,

 

I have 4 columns, lets call the, A,B,C,D

 

Each column has some numbers

 

CompanyABCD

Apple

1

0.20.30.2
Facebook00.40.50.4
Amazon0.610.80.6
Uber0.40.810.9

 

I want to write a measure that finds the average of A,B,C and D for each company.

 

BUT I want the user to be able to select which columns are used in this measure. For example, the user will click A B C and only these will be used in the average calculation. If the user selects B C D only these will be used in the measure. 

 

Thank you for your help!

1 ACCEPTED SOLUTION
parry2k
Super User
Super User

@NNaj - I would recommend to unpivot the data to do so, 

 

click transform data
- select company
- right-click, unpivot other columns it will add two columns, attribute, and value, rename these as per your requirement
- close and apply

To visualize,
- matrix visual:
- add country rows,
- add attribute on columns, you can also use this in slicer, to select respective A/B/C/D
- add value on values section, change aggregation to average

I would  Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

View solution in original post

13 REPLIES 13
nandukrishnavs
Super User
Super User

@NNaj 

 

Another solution using DAX.

Table

CompanyABCD
Apple1111
Facebook4422
Amazon2331
Uber5555

FilterColumnTable

Columns
A
B
C
D

Use this column in the slicer

Then create a DAX measure

 

 

Average = 
var _column=DISTINCT(FilterColumnTable[Columns])
var _a= IF("A" IN _column,SUM('Table'[A]),BLANK())
var _b=IF("B" IN _column,SUM('Table'[B]),BLANK())
var _c=IF("C" IN _column,SUM('Table'[C]),BLANK())
var _d=IF("D" IN _column,SUM('Table'[D]),BLANK())
var _total= {_a,_b,_c,_d}
var _result= AVERAGEX(_total,[Value])
return _result

 

 

Capture.JPG



Did I answer your question? Mark my post as a solution!
Appreciate with a kudos
🙂


Regards,
Nandu Krishna

Hi Nandu,

What is the [Value] in the averagex part of the measure?

The name of my Table is mgmt_score_component and the name of my filtered table is mgmt_score_component (3) . mgmt_score_component (3) only had one column called Attribute

@NNaj 

_total is a dynamic table. Its column header is Value. So you have to use it as it is.


Regards,
Nandu Krishna

@NNaj 

I have modified the DAX based on your table names and column names

Average = 
var _column=DISTINCT(mgmt_score_component (3)[Attribute]) // Use this attribute column in your slicer
var _a= IF("A" IN _column,SUM('mgmt_score_component'[A]),BLANK()) //you have to replace "A" with actual value available in the table mgmt_score_component (3)
var _b=IF("B" IN _column,SUM('mgmt_score_component'[B]),BLANK())
var _c=IF("C" IN _column,SUM('mgmt_score_component'[C]),BLANK())
var _d=IF("D" IN _column,SUM('mgmt_score_component'[D]),BLANK())
var _total= {_a,_b,_c,_d}
var _result= AVERAGEX(_total,[Value])
return _result



Did I answer your question? Mark my post as a solution!
Appreciate with a kudos
🙂


Regards,
Nandu Krishna

Why is this not working?
 
Average =
var _column=DISTINCT('mgmt_score_component (3)'[Attribute])
var _a= IF("NOx disclosed?" IN _column,SUM(mgmt_score_component[NOx disclosed?]),BLANK())
var _b=IF("SOx disclosed?" IN _column,SUM(mgmt_score_component[SOx disclosed?]),BLANK())
var _c=IF("Flaringdisclosed?" IN _column,SUM(mgmt_score_component[Flaringdisclosed?]),BLANK())
var _d=IF("Methan emissioncdisclosed?" IN _column,SUM(mgmt_score_component[Methan emissioncdisclosed?]),BLANK())
var _e= IF("Flaring reductionTarget" IN _column,SUM(mgmt_score_component[Flaring reductionTarget]),BLANK())
var _f=IF("Methane Reduction Target" IN _column,SUM(mgmt_score_component[Methane Reduction Target]),BLANK())
var _g=IF("Carbon Emissiontarget year disclosed?" IN _column,SUM(mgmt_score_component[Carbon Emissiontarget year disclosed?]),BLANK())
var _h=IF("Emissions related Target in place?" IN _column,SUM(mgmt_score_component[Emissions related Target in place?]),BLANK())
var _i= IF("Carbon Emission Reduction Target effort" IN _column,SUM(mgmt_score_component[Carbon Emission Reduction Target effort]),BLANK())
var _j=IF("Emissions relatedpolicy inplace?" IN _column,SUM(mgmt_score_component[Emissions relatedpolicy inplace?]),BLANK())
var _k=IF("EnvironmentProvisions disclosed?" IN _column,SUM(mgmt_score_component[EnvironmentProvisions disclosed?]),BLANK())
var _l=IF("RenewEnergy Usage disclosed?" IN _column,SUM('Table (12)'["RenewEnergy Usage disclosed?"]),BLANK())
var _m= IF("Enviroment RelatedInvestments disclosed?" IN _column,SUM(mgmt_score_component[Enviroment RelatedInvestments disclosed?]),BLANK())
var _n=IF("ClimateChangeRisksOpprtunity Awareness" IN _column,SUM(mgmt_score_component[ClimateChangeRisksOpprtunity Awareness]),BLANK())
var _o=IF("Energy_efficiencyeffort" IN _column,SUM(mgmt_score_component[Energy_efficiencyeffort]),BLANK())
var _p=IF("Clean_energyeffort" IN _column,SUM(mgmt_score_component[Clean_energyeffort]),BLANK())
var _total= {_a,_b,_c,_d,_e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p}
var _result= AVERAGEX(_total,[Value])
return _result

@NNaj 

 

Follow the below steps. 

Unpivot the columns

step1.JPG

Then click close and apply

step2.JPG

Now create a DAX measure

AverageValue = AVERAGE('MyTable'[Value])

Then plot the visuals

 step3.JPG



Did I answer your question? Mark my post as a solution!
Appreciate with a kudos
🙂


Regards,
Nandu Krishna

How do I do the 'filter column table' step, to get that table you screenshot?

 

@NNaj  you can manually create that table using Enter Data option. Or unpivot the duplicate table then keep Attributes column (delete other columns). Then delete duplicate rows. Rename the column headers and query name.


Regards,
Nandu Krishna

Hi Nandu,

What is the [Values] in the averagex part of the measure?

The name of my Table is mgmt_score_component and the name of my filtered table is mgmt_score_component (3) . mgmt_score_component (3) only had one column called Attribute

Everything is working so far except the measure, it is showing a blank column when I add it to the Table. Where should I create the measure?

parry2k
Super User
Super User

@NNaj - I would recommend to unpivot the data to do so, 

 

click transform data
- select company
- right-click, unpivot other columns it will add two columns, attribute, and value, rename these as per your requirement
- close and apply

To visualize,
- matrix visual:
- add country rows,
- add attribute on columns, you can also use this in slicer, to select respective A/B/C/D
- add value on values section, change aggregation to average

I would  Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

Thanks for this. I want to use this average calculation on the x-axis of a scatter graph. will this still be possible ?

@NNaj yup, x and y axis on scatter chart need a measure and this is perfect.

 

I would  Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

Check out the September 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

Find out what's new and trending in the Fabric Community.