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))) | 截取数字 |