如何四舍五入到特定数字

How to round to a speicific 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

因此,如果最后一位数字在 1-5 之间,则 432 变为 435;而 437 变为 439。也是上面显示的示例数据,我尝试使用 MROUND 或 FLOOR 函数但没有通过它,有什么办法可以解决这个问题

尝试:

=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)

好的,这有点 tricky.I 主要用于 rounddown。我从获取个数开始,即我们是 6-9&0 还是 1-5。

A1-rounddown(A1,-1)

然后我开始寻找用 ifs 替换它的号码以获取所有案例。

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

之后,我 运行 另一个 ifs 子句用于 <>0、<=5、>5 的 3 种情况。我终于把所有东西组合成了 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)

希望这是可以理解和帮助的。

  • 四舍五入到最接近的 5
  • 如果 (number - 1) mod 10 > 4 (即 6, 7, 8, 9), 减去 1 得到 9
  • 否则不管不顾不圆
=ArrayFormula(CEILING(A:A/5)*5-(MOD(A:A-1,10)>4))