1. 概述
1.1 问题描述
对于数字结果要求保留指定位数的有效数字,例如从一个数的左边第一个非0数字起,到末位数字止,所有的数字都是这个数的有效数字,如下图所示:
1.2 实现思路
获取数字 1 到 9 第一次最先出现的位置,计算出该截取的长度,然后截取数字。
2. 示例
2.1 模板设计
1)创建一个内置数据集,输入一些小数,如下图所示:
2)单元格设计如下图所示:
3)B2 格输入公式 left(A2,let(a,min(greparray(maparray(range(9),find(item,A2)),item>0)),if(a<2&&a+3>2,a+4,a+3))),如下图所示:
公式说明:
公式 | 说明 |
---|---|
maparray(range(9),find(item,A2)) | 生成数字 1 至 9 ,并依次判断在A2单元格数字中出现的位置 |
greparray(maparray(range(9),find(item,A2)),item>0) | 对上一步的结果,只取大于0的数字 |
min(greparray(maparray(range(9),find(item,A2)),item>0)) | 对上一步的结果,取出最小的数字,即A2数字中最早出现大于0的位置。 |
let(a,min(greparray(maparray(range(9),find(item,A2)),item>0)),if(a<2&&a+3>2,a+4,a+3)) | 判断上一步取得的位置到保留位数之间,是否存在小数点,存在则加上有效位数,否则加上有效位数-1,因为计算有效位数时,一般以科学计数法来计算,所以固定小数点在第二位。 |
left(A2,let(a,min(greparray(maparray(range(9),find(item,A2)),item>0)),if(a<2&&a+3>2,a+4,a+3))) | 截取数字 |
2.2 效果预览
2.2.1 PC 端
2.2.2 移动端
3. 模板下载
点击下载模板: