值!忽略Excel单元格计算中的文本

时间:2013-05-31 20:24:04

标签: excel-2010

我经常在计算中遇到VALUE!错误,因为它们包含数字和文本。如何将文本留在单元格中并继续计算?

例如:

单元格A1内容如下所示:101.1 J

单元格A2内容如下所示:500 U

单元格A3内容如下所示:0.2

如果我想将A1 + A2 + A3添加到单元格A4,我该如何忽略JU来计算101.1 + 500 + 0.2以获取单元格602.3中的A4

谢谢!

2 个答案:

答案 0 :(得分:4)

您需要从字符串中提取值 - 只有在您拥有有关数字格式的某种信息时才能这样做。在您的示例中,您可以将以下公式放在B1:B3中,然后添加=SUM(B1:B3)

=IF(ISNUMBER(A1),A1,VALUE(LEFT(A1,SEARCH(" ",A1)-1)))

以上公式将提取数字并将其转换为值 - 除非它已经是数字。

答案 1 :(得分:2)

使用自定义功能

将以下代码放在标准模块

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>)。它接受多个单元格。

enter image description here