cancel
Showing results for
Did you mean:  Helper III

## how to use Calculate function in combination with values function

Hi Guru's

I use the following formula which returns the "Total Pieces if Trend = "WON".

I need to add Value function so that it only looks in "Customer Name".  Not sure how to do this.

Total Pieces =
CALCULATE(

[pieces SUM],
KEEPFILTERS(
[Trend]="WON")
)
1 ACCEPTED SOLUTION  Resolver II

Use SUMMARIZE('MainTable', 'MainTable'[Customer Name]) will create a new table with just the customers in. You can then add separate calculated columns to replace the measures you have. If you need to you can add aggregations in the SUMMARIZE. It will make that statement more complicated to follow. I like breaking things out into separate calculated columns so you can test each individual DAX statement.

See how you get on, if you get stuck let us know

Thanks, Brian

9 REPLIES 9  Helper III

The my data is on an invoice level, I need this formula to calculate @ a customer level only using the [customer name].

Not sure if that makes sense.  or is this a given and I don't have to try and aggregate at a customer level at all?  Resolver II

Put it this way, if I could mock-up what you have then I could test the solution and give you the answer with an explanation as to how it works so you can build your understanding. I can’t do that without knowing what data you have and what you are trying to achieve. A screen shot of what you want and a screen shot of your data would help.

Thanks, Brian  Helper III

Herewith a link to example data I created.

https://www.dropbox.com/s/98u64lzepmeab3e/Calculate%20and%20Value%20function%20use%20together.pbix?d...

Essentially, I have a measure called [Trending UP].  It uses a sumx(values( functions and works.  What I am trying to do is to replace the sumx(values with a calculate(values as I am having performance issues.

Thanks for assisting me.  Resolver II

OK, now I see what you mean!

Have you used the performance analyser view?

How many rows do you have in the main table?

I’m not sure that you can solve this how you want. Anything using iterators or if statements will be slower than doing it a different way. We tend to only see performance problems when the dataset gets beyond a certain size.

Looking at what you are doing I would be inclined to create a new calculated table that is a summary of your main table aggregated to the customer level. Then you can convert the measures you have to calculated columns so they will be processed at data load.

Thanks, Brian  Helper III

My data has over 100 000 lines.

Ok, so aggregated calculated table, have not explored that yet.

I run through a video on how to.  Resolver II

Use SUMMARIZE('MainTable', 'MainTable'[Customer Name]) will create a new table with just the customers in. You can then add separate calculated columns to replace the measures you have. If you need to you can add aggregations in the SUMMARIZE. It will make that statement more complicated to follow. I like breaking things out into separate calculated columns so you can test each individual DAX statement.

See how you get on, if you get stuck let us know

Thanks, Brian  Helper III

@bpsearle, thank you so much.  Will absolutely try this approach!!  Resolver II

No problem, it's great being able to help 🙂

Thanks, Brian  Resolver II

Hey,

I can't quite follow what you mean.

Can you provide a mock up of what you want to see (screen shot of an excel representation or something similar) and a screen shot of the table with [Trend] and [customer name].

Thanks, Brian  