Google Sheets中股价超1000美元时如何隐藏多余小数位?
问题原因
你原有公式出现多余.00或单独小数点的核心原因是TEXT函数的格式串固定写了.##小数占位符:只要格式串里写了小数点,哪怕传入的值是整数,也会强制渲染小数段结构,才会出现无意义的尾缀。另外原公式重复调用3次GOOGLEFINANCE,会增加不必要的接口请求,容易触发限流、拖慢表格加载速度。
解决方案
直接利用TEXT函数自带的条件格式规则即可实现需求,不需要嵌套IF+MROUND做额外判断,格式串内用方括号包裹判断条件,分号分隔不同场景的展示规则即可:
- 价格小于1000美元:保留两位小数,带美元符号、千分位分隔
- 价格大于等于1000美元:自动四舍五入到整数,不带小数段,不会出现多余小数点或
.00
推荐公式(性能最优,仅调用一次行情接口)
如果你的Google Sheets支持LET函数(绝大多数个人/企业账号都已支持),用以下公式:
=IFERROR( LET( current_price, GOOGLEFINANCE(B2,"price"), TEXT(current_price, "[<1000]$#,##0.00;$#,##0") ) )
兼容旧版本公式
如果遇到LET函数不可用的情况,可以直接用简化写法:
=IFERROR(TEXT(GOOGLEFINANCE(B2,"price"),"[<1000]$#,##0.00;$#,##0"))
特殊需求调整
如果你希望价格超过1000美元时直接截断小数(而非四舍五入取整),可以把公式调整为:
=IFERROR( LET( current_price, GOOGLEFINANCE(B2,"price"), TEXT(IF(current_price<1000, current_price, INT(current_price)), "[<1000]$#,##0.00;$#,##0") ) )
公式效果示例:价格为999.99时显示
$999.99,价格为1234.56时显示$1,235(四舍五入场景)/$1,234(截断场景),不会出现多余尾缀。
内容的提问来源于stack exchange,提问作者user15649627
相关产品推荐
相关产品推荐

