我想对字符串单元格的值求和。这个想法是将字符串单元格转换为总和,然后计算总和。 这是一个例子来说明我的意思:
让一个像元为A =“ 4 + 5 + 6”的像元,我想将该像元转换为如下的总和数:A = 4 + 5 + 6,然后计算A = 15。
长话短说,有没有一种方法/想法可以直接通过excel将字符串总和转换为总和数。
答案 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中:
选择要在其中执行计算的单元格(也就是要在其中显示答案的单元格)。首先执行此操作将为以下步骤设置参考点。在这种情况下,我选择单元格F10。
在选择单元格F10的情况下,转到功能区的“公式”选项卡,然后从“定义的名称”部分中选择“定义名称”:
在弹出的窗口的名称框中输入名称。此名称是您将在excel公式中使用的名称。在此示例中,我选择名称“ Answer”。在“引用”框中,输入以下公式:
=evaluate(F9)
请注意,单元格($)上没有引用锁定。这是相对于步骤1中所选单元格的参考。在这种情况下,单元格F9是应在答案上方出现的单元格,位于F10中。
选择“确定”,窗口将关闭
现在在F9单元格和J12单元格中输入以下公式
=Answer
请注意,位于两个不同位置的相同公式将评估单元格上方的字符串操作,并正确返回两个不同的答案。
只要字符串是由excel认可的可接受的数学运算符构建的,并且没有错误(例如缺少括号),evaluate将处理该字符串并吐出一个值。我当时注意到的一个问题是,命名公式仅特定于其定义的工作表。随后的每个工作表都需要使用自己定义的名称。