You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写IF公式,根据数值自动调用Floor.Math或Ceiling.Math?

实现以90结尾的商业价格IF公式方案

核心公式

针对任意数值(如$3.945、$123.456等),可以使用以下IF公式实现需求:

=IF(INT(MOD(A1*100,10))>=5, CEILING.MATH(A1,0.1), FLOOR.MATH(A1,0.1)) - 0.01

或者拆分逻辑的完整写法:

=IF(INT(MOD(A1*100,10))>=5, CEILING.MATH(A1,0.1)-0.01, FLOOR.MATH(A1,0.1)-0.01)

公式逻辑说明

  1. 判断条件:INT(MOD(A1*100,10))>=5

    • A1*100:将原始数值放大100倍,把小数点后第二位转为个位(如$3.945*100=394.5,$3.955*100=395.5)
    • MOD(...,10):提取放大后的数值的个位部分(即原始数值的小数点后第二位及后续小数,如MOD(394.5,10)=4.5,MOD(395.5,10)=5.5)
    • INT(...):取整数部分,得到原始数值小数点后第二位的数字(如INT(4.5)=4,INT(5.5)=5)
    • 最终判断该数字是否≥5,以此区分x.x5x及以上和x.x4x及以下的情况
  2. 分支处理

    • 当满足条件(小数点后第二位≥5):用CEILING.MATH(A1,0.1)将数值向上取整到最近的0.1倍数,再减去0.01得到以.90结尾的价格(如$3.955→4.0-0.01=3.99)
    • 当不满足条件(小数点后第二位≤4):用FLOOR.MATH(A1,0.1)将数值向下取整到最近的0.1倍数,再减去0.01得到以.90结尾的价格(如$3.945→3.9-0.01=3.89)

测试验证

以下是不同场景的测试结果,均符合需求:

  • 输入$3.945 → 输出$3.890
  • 输入$3.955 → 输出$3.990
  • 输入$123.449 → 输出$123.390
  • 输入$78.950 → 输出$78.990
  • 输入$0.543 → 输出$0.490
  • 输入$999.959 → 输出$999.990

内容的提问来源于stack exchange,提问作者Francisco Augusto Varela Aguir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:11:21