Hello,
I am attempting to create a field that shows the amount equal to the total of a specific attribute (as a reference denominator field) to calculate the percentage of the total of each record in a separate field
I did attempt to summarize, but this only created a table with one field of the total. I see that I am supposed to join the data back in with the original data but how do I do this if there is only one field? Can you populate a whole column with one join?
I hope this makes sense and thank you to anyone who is able to help!
-Jenny
Solved! Go to Solution.
A couple things to consider:
1. What Type of field is PRCNT? I'd make a float. My bet is you have as an integer, and that type of field can't handle decimal places that you will have.
2. I always use Python expressions so it would look like :
!TOTAL_PROJ! / 1813828471
That just gives you a rational number. To get true percent:
(!TOTAL_PROJ! / 1813828471) * 100
Maybe you don't need that Total_All field. Is the data dynamic? If not you know the value of Total_All already, so you could just plug that value in field calculator for the PRCNT field.
If the data is dynamic it will get a little sticker but doable with a cursor or two in python.
Yes! You're right. I ended up using the field calculator and just saying it was equal to that total amount (for the Total_ALL field). I didnt realize it would populate all records, so much easier than I originally thought. Unfortunately, now my calculation isnt working, so I think I'll end up doing the calculation in excel (which I was trying to avoid). Thank for you reply!
Friends don't let friends use Excel to do GIS work: do you get an error now? If so what is it? Can you share the the calculate expression you are using?
I keep entering into my PRCNT field with the calculator:
PRCNT = [TOTAL_PROJ] / 1813828471
but it keeps giving me 0 (I tried playing around with the numeric display by adding decimal places, but still no go)
A couple things to consider:
1. What Type of field is PRCNT? I'd make a float. My bet is you have as an integer, and that type of field can't handle decimal places that you will have.
2. I always use Python expressions so it would look like :
!TOTAL_PROJ! / 1813828471
That just gives you a rational number. To get true percent:
(!TOTAL_PROJ! / 1813828471) * 100
Yes! That did it. I was using a long integer before and even caught on to what you were suggesting during my own troubleshooting (I started setting the precision to 100,000 as an experiment, but perhaps that was not even enough! Better to do a Float now when unsure I suppose).
Thank you for your help, this will help my project tremendously.
Long Ints or Short Ints won't do decimal places no matter what you set the precision to. I use typically I use floats for decimal numbers but double works as well.
Ahhhh, see I incorrectly assumed Double was used for calculating geometry and I had honestly never used Float before. It makes sense though, with an integer being an integer (like you said).