如何四舍五入到特定数字
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))
我想这可能是一件容易的事,我尝试在社区中搜索,但找不到我要找的那个,所以我有一些数字,想四舍五入到一个特定的数字,
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))