'How to round to a speicific number

I assume this may be an easy task, I have tried searching in the community, but can't find the one which I am looking for, so i have some numbers and want to round to a specific number,

BEFORE AFTER ROUNDED
431 435
432 435
433 435
434 435
435 435
430 429
436 439
437 439
438 439
439 439
440 439

So, if the last digit is between 1-5 it will be i.e. 432 becomes 435; while 437 becomes 439. Also a sample data shown above, i have tried using MROUND or FLOOR Function but not getting through it, any way to get around this



Solution 1:[1]

try:

=ARRAYFORMULA(
 IF(REGEXMATCH(INT(X9:X14)&""; ".+[1-5]$"); REGEXEXTRACT(INT(X9:X14)&""; "(.*)\d$")&5; 
 IF(REGEXMATCH(INT(X9:X14)&""; ".+[0]$"); INT(X9:X14)-1; REGEXEXTRACT(INT(X9:X14)&""; "(.*)\d$")&9))*1)

enter image description here

Solution 2:[2]

Ok, this was a little tricky.I worked mostly with rounddown. I started by getting the ones number, i.e., whether we are 6-9&0 or 1-5.

A1-rounddown(A1,-1)

enter image description here

I then moved to find which number to replace it with using an ifs to get all the cases.

=IFS(B1=0,9,B1<=5,5,A1-B1>5,9)

Afterwards I ran another ifs clause for the 3 cases where <>0, <=5, >5. I finally combined everything into a one-liner:

=if(A1-rounddown(A1,-1)<>0,rounddown(A1,-1)+IFS(A1-rounddown(A1,-1)=0,9,A1-rounddown(A1,-1)<=5,5,A1-rounddown(A1,-1)>5,9),A1-1)

Hopefully this was understandable and helpful.

Solution 3:[3]

  • Round to nearest 5
  • If (number - 1) mod 10 > 4 (i.e. 6, 7, 8, 9), subtract 1 to get 9
  • Otherwise, leave it alone to not round
=ArrayFormula(CEILING(A:A/5)*5-(MOD(A:A-1,10)>4))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Avishai Barnoy
Solution 3 General Grievance