将字符串总和转换为EXCEL中的总和

时间:2019-03-12 10:00:08

标签: excel excel-formula excel-2010 excel-2007

我想对字符串单元格的值求和。这个想法是将字符串单元格转换为总和,然后计算总和。 这是一个例子来说明我的意思:

让一个像元为A =“ 4 + 5 + 6”的像元,我想将该像元转换为如下的总和数:A = 4 + 5 + 6,然后计算A = 15。

长话短说,有没有一种方法/想法可以直接通过excel将字符串总和转换为总和数。

3 个答案:

答案 0 :(得分:0)

这是解决方案:

Excel VBA >>新模块>>将自定义函数应用于所需的单元格。

这是自定义功能

Function func(arg)
    func = Evaluate(arg.value)
End Function

答案 1 :(得分:0)

假设您的文本单元格名为textcell,则可以使用以下代码

Dim arrayofWords
Dim sum As Integer
arrayofWords = Split([textcell], "+")
For i = LBound(arrayofWords) To UBound(arrayofWords)
    sum = sum + CInt(arrayofWords(i))
Next
MsgBox sum

答案 2 :(得分:0)

不需要VBA(排序方式)

Evaluate是一些内置的VBA脚本,可以完全满足您的描述。但是,您不需要使用VBA编辑器。相反,您可以通过NAME FORMULA进行引用。但是,一旦以这种方式引用它,您将不再能够将电子表格保存为xlsx格式,而是需要使用xlsm。

让我们假设您已按照此图中所示布置数据,并且希望答案出现在F10和J12中:

setup

步骤1

选择要在其中执行计算的单元格(也就是要在其中显示答案的单元格)。首先执行此操作将为以下步骤设置参考点。在这种情况下,我选择单元格F10。

步骤2

在选择单元格F10的情况下,转到功能区的“公式”选项卡,然后从“定义的名称”部分中选择“定义名称”:

Ribbon selection

步骤3

在弹出的窗口的名称框中输入名称。此名称是您将在excel公式中使用的名称。在此示例中,我选择名称“ Answer”。在“引用”框中,输入以下公式:

=evaluate(F9)

请注意,单元格($)上没有引用锁定。这是相对于步骤1中所选单元格的参考。在这种情况下,单元格F9是应在答案上方出现的单元格,位于F10中。

选择“确定”,窗口将关闭

Defined Name

步骤4

现在在F9单元格和J12单元格中输入以下公式

=Answer

请注意,位于两个不同位置的相同公式将评估单元格上方的字符串操作,并正确返回两个不同的答案。

POC

只要字符串是由excel认可的可接受的数学运算符构建的,并且没有错误(例如缺少括号),evaluate将处理该字符串并吐出一个值。我当时注意到的一个问题是,命名公式仅特定于其定义的工作表。随后的每个工作表都需要使用自己定义的名称。