Link to home
Start Free TrialLog in
Avatar of leezac
leezac

asked on

Rounding in formula

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)"
Avatar of aa-denver
aa-denver
Flag of United States of America image

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
Avatar of leezac
leezac

ASKER

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"
Avatar of leezac

ASKER

In reference to my last comment.  It may work.  Testing.
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
Avatar of Jacques Geday
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
Avatar of leezac

ASKER

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

ASKER

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
ASKER CERTIFIED SOLUTION
Avatar of Jacques Geday
Jacques Geday
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial