Rounding in formula

leezac
leezac used Ask the Experts™
on
I need to add rounding to the two columns below.  I tried to do it by adding another row, but got an #value error.

G and H

 Range("G" & srow).FormulaR1C1 = "=SUMIFS('Prior BDay'!C[-2],'Prior BDay'!C[-5],Summary!RC[-5],'Prior BDay'!C[-4],Summary!RC[-4])"
                    Range("G" & srow).FormulaR1C1 = "=ROUND(RC[-1],9)"


                    Range("H" & srow) = sp.ItemValue("M04")
                    Range("H" & srow).FormulaR1C1 = "=ROUND(RC[-1],9)"
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Excel will automatically round the number displayed up if you change the number of decimal points displayed.   If that is not exactly what you need, then you can use the round function to specify exactly how much to round up, like to the nearest 5, 10, etc.

Here is a link that explains the all this in more detail:

http://office.microsoft.com/en-us/excel-help/round-a-number-HP003056144.aspx

Author

Commented:
I changed the rounding as you suggesed in the cell,  it shows 0.000000274 but when I click on it is shows 0.000000273985  

There is this formulat that looks at the cell and shows a valued based on the rounding.

  Range("J" & srow).FormulaR1C1 = "=IF(RC[-1]=0,0,IF(RC[-3]=0.000000274,""Check"",IF(RC[-2]>0.000000274,""Valid"",""Check"")))"

I believe because of the 0.000000273985 still being there that the formula for J shows incorrect.  It should say "Valid" but says "Check"

Author

Commented:
In reference to my last comment.  It may work.  Testing.
Become a Microsoft Certified Solutions Expert

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

If you are printing the spreadsheet, the "display rounding" will be good enough.  If you are wanting to truncate the trailing digits, then you will need to use the round formula.

Removing trailing digits may be important to you.  One place this is commonly needed is in money calculations where the trailing digits can make a column total higher than if they are not there.  Your numbers don't appear to be related to financial totals, but whatever your application, it may not tolerate the trailing digits.

I don't understand your need for using a range.  You could just create a new column, create a formula for the first line and then copy it to all the other lines below.

Here is a simple example.  This example uses only 1 decimal place.  You would need to change the value to 9.   H1 = round(G1,9) instead of H1 = round(G1,1)


http://spreadsheets.about.com/od/excelfunctions/qt/070809_round.htm
I see this question still hanging. Did you get your solution ? If not, could you pls post the workbook that have the data together with this code so we can look it up closer ?
gowflow

Author

Commented:
No.  Is there vba code i can use to loop through Columns G and H to end of row and round to 9 digits ??

Author

Commented:
Sub test()
    Sheets("Sheet1").Range("G1:H").Select
    Selection.NumberFormat = "0.000000000"
  End Sub

Would something like this work - to just replace the values?
No not this way. Please post sample workbook with the data and I will do it for you. Don't give me bits of codes it is not this way.

gowflow
Not sure but is this what you want ??

Sub test()
    Sheets("Sheet1").Range(Range("G1"), Range("H" & Rows.Count).End(xlUp)).Select
    Selection.NumberFormat = "0.000000000"
End Sub

Open in new window


gowflow

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial