返回有效数字的函数

时间:2015-03-21 15:07:58

标签: excel

我不知道如何在excel上创建一个返回数字中有效数字的函数。所以举个例子。如果我输入0.0001004,则输出为4。

3 个答案:

答案 0 :(得分:1)

这适用于任何数字。由于管理sig figs的许多规则,它非常复杂。如果要在小数点后使用尾随零,只需将输入单元格设置为文本格式。

ax.spines['bottom'].set_color('0.5')
ax.spines['top'].set_color(None)
ax.spines['right'].set_color('0.5')
ax.spines['left'].set_color(None)
ax.patch.set_facecolor('0.1')
plt.grid(b=True, which='major', color='0.2', linestyle='-')
plt.grid(b=True, which='minor', color='0.2', linestyle='-')
ax.tick_params(axis='x', colors='0.7', which='both')
ax.tick_params(axis='y', colors='0.7', which='both')
ax.yaxis.label.set_color('0.9')
ax.xaxis.label.set_color('0.9')
ax.margins(0.5)
fig.patch.set_facecolor('0.15')

这个等式比绝对要求的要复杂得多,因为它能够处理文本输入,你会得到复杂的因素,如0.123 vs .123,负数和尾随零(例如-.0900)。 / p>

enter image description here

答案 1 :(得分:0)

这个小 UDF 将显示小数点后单元格中显示的有效位数:

Public Function Sig(r As Range) As Long
    If InStr(r.Text, ".") = 0 Then
        Sig = 0
        Exit Function
    End If

    t = Split(r.Text, ".")(1)
    l = Len(t)
    For i = 1 To l
        If Left(t, 1) = "0" Then
            t = Mid(t, 2)
        Else
            Exit For
        End If
    Next i
    Sig = Len(t)
End Function

它显然取决于单元格的格式

答案 2 :(得分:0)

我认为你在寻找:

=IF(AND(A1<1,A1>0),LEN(MID(A1,IF(ROUND(-LOG10(A1),0)=0,3,ROUND(-LOG10(A1),0)+2),99)),0)

首先IF检查输入数字是否在0-1范围内,ROUND(-LOG10(A1),0)查找零的数量,MID子字符串从非零数字到结尾(99) ,LEN检查长度。

enter image description here