我不知道如何在excel上创建一个返回数字中有效数字的函数。所以举个例子。如果我输入0.0001004,则输出为4。
答案 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>
答案 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
检查长度。