Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对excel单元格中分号分隔的值求和_Excel - Fatal编程技术网

如何对excel单元格中分号分隔的值求和

如何对excel单元格中分号分隔的值求和,excel,Excel,我在excel中有一个单元格,它包含多个用分号分隔的值,我需要对每个单元格求和 每个单元格中的值数为N(未知),它只能是一个值,也可以是20或更多 我之所以用分号分隔值,是因为每一行代表我们正在销售的产品。该行是包含该产品销售价格的单元格。 例子 名为“室内门”的产品以不同的价格销售了三次,所以该单元包含三个值:102,5;98,2;101,00现在我需要将这三个值相加,以得到总价格(产品的销售价格) 您应该使用文本到列选项卡来分隔数字并将它们放在单独的单元格中,然后您可以对它们使用求和函数。您

我在excel中有一个单元格,它包含多个用分号分隔的值,我需要对每个单元格求和

每个单元格中的值数为N(未知),它只能是一个值,也可以是20或更多

我之所以用分号分隔值,是因为每一行代表我们正在销售的产品。该行是包含该产品销售价格的单元格。
例子
名为“室内门”的产品以不同的价格销售了三次,所以该单元包含三个值:102,5;98,2;101,00现在我需要将这三个值相加,以得到总价格(产品的销售价格)

您应该使用
文本到列
选项卡来分隔数字并将它们放在单独的单元格中,然后您可以对它们使用求和函数。

您可以使用以下公式:

=eval(SUBSTITUTE(SUBSTITUTE(A1, ";", "+"),",","."))
将用户定义的函数添加到工作簿后:

Function eval(str As String)
   eval = Evaluate(str)
End Function

考虑数组公式

=SUM((TRIM(MID(SUBSTITUTE(A1,";",REPT(" ",255)),1+(ROW(A1:A999)-1)*255,255)) & "0")/10)
使用CNTRL-SHFT-ENTER输入数组公式,而不仅仅是使用ENTER

因此,如果A1包含:

一,;2.三,


如果公式适用于
10,2,则应返回6

请检查;10,3
。它为我返回
2,05
。你是对的…….我的公式只使用逗号…除非逗号是十进制分隔符Hi,我知道这已经过去了5年,但我想补充一点,从Excel 2013开始,你可以省略
和“0”/10
部分,将空格强制为0,然后使用
数值()
相反。这也解决了公式返回不正确结果时使用逗号分隔的小数点值(例如,34.5变为34.50/10->3.45)的问题。修改后的表达式将是
=SUM(NUMBERVALUE(TRIM(MID(替换为(A1,,”,REPT(“,255)),1+(行(A1:A999)-1)*255255)))
的可能重复项,但您在此处使用了
而不是
。可能重复项刚刚尝试过,我得到了#Value!错误。我已将您的函数添加到我的工作簿中,因此这不是问题。如果更容易,我已上载我的测试工作簿,或者如果您不介意上载带有工作函数的示例。L墨水尝试使用
=eval(替换为(A1,“;”,“+”)
。它有效吗?它取决于您电脑上的数字格式(我的意思是它取决于您电脑上十进制分隔符的类型-
).P.s.它在我的电脑上和你的工作簿一起工作这很奇怪,我尝试了两种方法。这是我的windows 8的数字设置。你的excel中是否有函数
SUBSTITUTE
?它可能因为语言特性而被不同地调用。好的,问题解决了,我不知道office版本之间是否有任何差异,但我不得不使用这个公式la(看看公式中的分隔符,我必须使用分号,而你使用的是冒号。
=eval(替换)(替换为(A1;“;”;“+”;”,“;”))