包含换行符的一个单元格中的总和数 - Excel

时间:2017-06-29 14:39:39

标签: excel excel-formula sum

我一直在寻找几个小时,我找不到解决这个问题的方法。

See the image

正如您在图像上看到的,我有3列2行。我的目标是将成本行(它有换行符)或将设备和成本列分成3个较小的行。这可能吗?

2 个答案:

答案 0 :(得分:1)

不幸的是,根据我的知识,这并不是一种特别干净的方法。以下是您可以尝试的一些事项:

方法1 - 工作表解决方案

如果您的第一个成本单元格在A1中,则将光标放在单元格B1中,并使用以下公式创建一个新的命名范围:

=EVALUATE(SUBSTITUTE(A1,CHAR(10),"+"))

然后,您可以在单元格B1中键入命名范围的名称,然后按预期获得总和。不幸的是,你必须为此创建一个命名范围,因为EVALUATE不能作为工作表函数使用 - 只有命名范围函数,也可以在VBA中使用。

我打电话给我的命名范围" eval"。您可以向下拖动此公式,它将填满,始终将单元格评估为左侧。

enter image description here

方法2 - VBA解决方案

您可以使用一些简单的VBA。将其粘贴到一个新模块中,然后在工作表上使用此公式,如下所示:

=SumAlt(A1)
如果A1包含您的100 200 300

将在您的示例中返回600

Function SumAlt(s As String) As Long
    SumAlt = Evaluate(Replace(s, Chr(10), "+"))
End Function

答案 1 :(得分:1)

VBA中的这样的东西会起作用:

Function SumLines(ByVal str As String) As Long

    Dim arr() As String

    arr = Split(str, Chr(10))

    For a = 0 To UBound(arr)
        SumLines = SumLines + CLng(arr(a))
    Next

End Function

但是,只有在除了数字和Chr(10)s(新行)之外没有任何字符时,这才有效。

然后在工作表中使用它,例如:

=SumLines(A1)