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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Midguel
Helper I
Helper I

Create a pie chart with a calculated column that varies with filters

Hi everyone,

I am having problems creating a pie chart that has to change with filters, so far i already create a chart but only works when i don't apply the filters, the moment i apply one filter the chart does not shows the right filtered data, and that's because the chart uses a calculated column named "CHART" that i created with a condition : 

CHART = IF([WEIGHT]>20,"Order greater than 20","Order less than 20")

but when the weight variates deppending on the filters my column with the condition doesn't take on count the new weight filtered. It stays with the total weight.

 

when i use the same code but in a measure instead of in a new column, it actually changes deppending of the new filtered weight, the problem is that i can't use a measure as "Legend" for my pie chart.

 

here's a example of my data base that i recreate in excel (the original actually has more "FILTERS" and data in general):

 

tabla1.png

here's without filters:

 

Screenshot_2.png

and i achieved a chart like this one:

 

pie chart.png

 

it count and divides in a chart how many "ORDER" are "GREATER THAN 20 pounds" and how many not, using "CHART" as Legend and "Count of ORDER" as Value.

I would like to create a calculated column "CHART" that recalculates the values of the weight deppending on the filters (as a measure does), i.e:

 

aaaaaaaaaaa.png

(look that the weight changes deppending on the filters and also the "CHART" column should do it)

 

So i can use this column for my pie chart, or if this is not possible, how can i do more charts like the first one but with the new values of the weight after the filters.

 

I hope i have explained myself enough, english it is not my first language

Thank you all for your help and time. 🙂

1 ACCEPTED SOLUTION

Right, so create a new table with just this information:

 

Table: ChartLegend

Chart

Greater than 20

Less than 20

 

You will use this as your Legend.

 

Now you are going to need a measure that goes something like:

Measure =
  __Chart = MAX('ChartLegend'[Chart]) //get your current value for your legend
  __Table = 'Table' //get your fact table with current filters
  __Table1 = ADDCOLUMNS('Table',"__Chart",<Some calculation goes here>) //add your dynamic column
RETURN
  SWITCH(__Chart,
    "Greater than 20",COUNTROWS(FILTER(__Table1,__Chart = "Greater than 20")),
    "Less than 20",COUNTROWS(FILTER(__Table1,__Chart = "Less than 20")),
  )
    
  

 

 

 


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

4 REPLIES 4
Greg_Deckler
Super User
Super User

In general, to use a measure in that way, you need to use the Disconnected Table Trick as this article demonstrates: https://community.powerbi.com/t5/Community-Blog/Solving-Attendance-with-the-Disconnected-Table-Trick...


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Hi @Greg_Deckler, thank you for your reply, it would be possible that you can help me a little with the DAX command that ties everything at the end? I am very new using DAX Commands and after reading the post i just couldn't translate the DAX solution from that problem to this, specifically the "measures to show" part at the end of the post.

 

Hope you can help and thank you again!!

Right, so create a new table with just this information:

 

Table: ChartLegend

Chart

Greater than 20

Less than 20

 

You will use this as your Legend.

 

Now you are going to need a measure that goes something like:

Measure =
  __Chart = MAX('ChartLegend'[Chart]) //get your current value for your legend
  __Table = 'Table' //get your fact table with current filters
  __Table1 = ADDCOLUMNS('Table',"__Chart",<Some calculation goes here>) //add your dynamic column
RETURN
  SWITCH(__Chart,
    "Greater than 20",COUNTROWS(FILTER(__Table1,__Chart = "Greater than 20")),
    "Less than 20",COUNTROWS(FILTER(__Table1,__Chart = "Less than 20")),
  )
    
  

 

 

 


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Thank you for your help man,

 

In the script when i use 

Measure = 

          __Chart = MAX(...) , "__Chart" is my existing column named "Chart" or is a new one that the measure will create? because the script program sends me a "unexpected expression".
I am not sure if the measure can let me do something like:

            measure = __chart = MAX()  = __table = 'table'

 

Most likely my error is that i'm trying to take that script to literally for my measure.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors