我經常遇到VALUE!
錯誤,因爲它們包含數字和文本。我如何將文本留在單元格中並繼續計算?VALUE!忽略excel單元格計算中的文本
例如:
細胞A1
內容是這樣的:101.1 J
細胞A2
內容是這樣的:500 U
細胞A3
內容是這樣的:0.2
如果我想將A1
+ A2
+ A3
加入單元格A4
,如何忽略J
和U
來計算101.1
+ 500
+ 0.2
以獲得602.3
單元格A4
?
謝謝!
我經常遇到VALUE!
錯誤,因爲它們包含數字和文本。我如何將文本留在單元格中並繼續計算?VALUE!忽略excel單元格計算中的文本
例如:
細胞A1
內容是這樣的:101.1 J
細胞A2
內容是這樣的:500 U
細胞A3
內容是這樣的:0.2
如果我想將A1
+ A2
+ A3
加入單元格A4
,如何忽略J
和U
來計算101.1
+ 500
+ 0.2
以獲得602.3
單元格A4
?
謝謝!
您需要從字符串中提取值 - 並且只有在您具有關於數字格式的某種信息時才能完成此操作。在你的榜樣,你可以將下面的公式B1:B3,然後添加一個=SUM(B1:B3)
:
=IF(ISNUMBER(A1),A1,VALUE(LEFT(A1,SEARCH(" ",A1)-1)))
上述公式將提取的數量,並將其轉換爲一個值 - 除非它已經是一個數字。
使用自定義功能下面代碼
放置在標準模塊
Function add_num(cell1, ParamArray Arr() As Variant)
Dim temp As Double
For i = LBound(Arr) To UBound(Arr)
temp = temp + GetNumber(Arr(i))
Next
add_num = GetNumber(cell1.Value) + temp
End Function
Function GetNumber(ByVal str As String) As Double
Dim objRegEx As Object
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.IgnoreCase = True
objRegEx.Global = True
objRegEx.Pattern = "\d{1,2}([\.,][\d{1,2}])?"
Set allMatches = objRegEx.Execute(str)
For i = 0 To allMatches.Count - 1
result = result & allMatches.Item(i)
Next
GetNumber = result
End Function
add_num function
可以從Excel界面使用=addnum(<cells>)
被調用。它接受多個單元格。
下面的答案是不是有幫助你的原因? – Santosh