cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
tlenzmeier
Helper II
Helper II

Percent of Column Total

Hello,

 

In what would apparently seem like a staightforward thing to do, I am trying to capture the percent of each contract with a customer to the total contract amount with said customer. For example, customer A has three contracts, each for $100,000. The total for that customer is $300,000 and the percentage of each contract is 33.33%. I have tried the following DIVIDE(sum('Contract'[Net Contract Amount]), CALCULATE([Net Contract Amount], ALLSELECTED('Customer'[CustomerID]))). The value that comes back for each row is 100%. There is somethign amiss with my context since the only way you can get to 100% for each row is that the measure is dividing each row by itselt: $100,000 divided by $100,000 equals 1.  The measure is to be used primarily in a table. Thanks for your assistance.

1 ACCEPTED SOLUTION
dramus
Responsive Resident
Responsive Resident

Percent of Total = DIVIDE(sum('Contract'[ContractAmount], RELATED('Vendor'[Vendor Total]), 0)

 

Take out that sum. You don't need it.

 

Percentage of Total Contracts = divide([Contract Amount],related('Companies'[Total Contract Value]),0)

View solution in original post

14 REPLIES 14
Anonymous
Not applicable

I am having difficulty replicating the formula.

 

I have a GBP value column [Settlement] and a text value colum [Channel].

 

I need to see what percentage of the total [Settlement] is for each [Channel]

 

Thanks

 

Dom

Greg_Deckler
Super User
Super User

Just use the "Show value as" | "Percent of grand total"?

 

Click the little arrow drop down on your value column in the Visualizations area and choose those menu options.


@ me in replies or I'll lose your thread!!!
Check out my External Tool for Power BI Desktop! Microsoft Hates Greg's Quick Measures
YouTube Channel! Microsoft Hates Greg
Check out my latest book!

I need to store a value since I have to then multiply that percentage against another value. In this example, the customer has a credit limit of $750,000, so each row in the table needs to have the percentage multiplied by the credit limit.

OK, what you probably want is an ALLEXCEPT clause instead of ALLSELECTED. Sample data please.


@ me in replies or I'll lose your thread!!!
Check out my External Tool for Power BI Desktop! Microsoft Hates Greg's Quick Measures
YouTube Channel! Microsoft Hates Greg
Check out my latest book!

Contract NumberVendorIDContract AmountPct of Total
7223DIAM49113$959,57441.99%
7239DIAM49113$805,79035.26%
7351DIAM49113$519,67022.74%
  $2,285,034100.00%

 

The percent of total is a simple formula in Excel. The percentages will subsequently be used in another measure/calculation. If I use ALLEXCEPT, all except what? The VendorID is the primary key in the vendor table and subcontract number is a dependency.

ALLEXCEPT whatever filters you are trying to preserve. So, in the case below you would probably just need to use VendorID I believe.


@ me in replies or I'll lose your thread!!!
Check out my External Tool for Power BI Desktop! Microsoft Hates Greg's Quick Measures
YouTube Channel! Microsoft Hates Greg
Check out my latest book!

dramus
Responsive Resident
Responsive Resident

I created a table with just the companies and then added column based on this:

 

 

Total Contract value = sumx(Calculatetable('Contracts',filter('Contracts',[Company]='Companies'[Company])),[Contract Amount])

 

Then on the Contracts table I created another column based on this:

 

 

Percentage of Total Contracts = [Contract Amount]/related('Companies'[Total Contract Value])

 

 

 

Which gave the following results:

 

Capture.PNG

 

I can let you have the PBIX file if you would like.

Anonymous
Not applicable

Greetings 

Can you kindly share the file please

When I go to calculate the percentage, I get a DAX error: "The column either doesn't exist or doesn't have a relationship to any table available in the current context." I do have a relationship defined between the contract table and the vendor table. The contract table is the "many" side of the relationship. I do know that the total amount at the vendor level is correct. Just so I'm clear, the percent of total is a column as opposed to a measure, correct?

dramus
Responsive Resident
Responsive Resident

Just so I'm clear, the percent of total is a column as opposed to a measure, correct?

 

Yes, both of these were columns.

dramus
Responsive Resident
Responsive Resident

What does your formula look like?

Percent of Total = DIVIDE(sum('Contract'[ContractAmount], RELATED('Vendor'[Vendor Total]), 0)

I also have a measure defined in the contracts table Contract Amount = sum('Contract'[ContractAmount])

On the vendor side, I have SUMX(CALCULATETABLE('Contract', FILTER('Contract', [VendorID] =  'Vendor'[VendorID])), [Contract Amount])

dramus
Responsive Resident
Responsive Resident

Percent of Total = DIVIDE(sum('Contract'[ContractAmount], RELATED('Vendor'[Vendor Total]), 0)

 

Take out that sum. You don't need it.

 

Percentage of Total Contracts = divide([Contract Amount],related('Companies'[Total Contract Value]),0)

View solution in original post

That did it! Thank you!!

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

November Power BI Update 768x460.png

Check it Out!

Click here to read more about the November 2021 Updates!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.