在excel中的单个单元格中添加总求和的某些括号

分享于 

3分钟阅读

电脑

 

问题:

我需要以下帮助:
在一个单元格中,我添加了一个: ((0)+(0)+(10))+((13)+(0)+(0))+((0)+(0)+(10))
我想在每个外括号中添加第三个括号的添加,所以总数将给我 20.
你们对这种方法有什么建议。


回答 1:

下面是一个VBA宏作为解决方案。

对于excel公式,使用 Find() 和 Mid() 作为多个目标可以得到很长的convoluted复杂的。 这里也有困难,因为加法长度变化。 0是一个数字,其他是两个数字。

这里宏使用活动单元格并添加每个第三个元素,而不考虑括号。 最后一行注释掉了,但可以用来在工作表中插入你的总和。


Sub sumSplit()


 Dim currCell As String


 Dim sums As Variant


 Dim myTot As Long


 Dim myIndex As Long


 Dim myString As String


 Dim myExit As Boolean



 myString = Replace(ActiveCell.Value2,"(","")


 myString = Replace(myString,")","")


 sums = Split(myString,"+")


 myIndex = 2


 myTot = 0


 myExit = True


 Do While myExit


 If myIndex <= UBound(sums, 1) Then


 myTot = myTot + sums(myIndex)


 Else


 myExit = False


 End If


 myIndex = myIndex + 3


 Loop



 MsgBox myTot


 'ActiveCell.Offset(0, 1).Value2 = myTot



End Sub




回答 2:

=LEFT(RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"(","|",4))),FIND(")",RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"(","|",4))))-1) + LEFT(RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"(","|",8))),FIND(")",RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"(","|",8))))-1) + LEFT(RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"(","|",12))),FIND(")",RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"(","|",12))))-1)

警告- 这将在以下情况下工作:

  • 在每一组外括号中,总是有三组内括号,如示例 ((...)...(...)...(...)) 所示
  • 第三个内部parenthese包含一个数字,而不是计算结果为数字的表达式;空格是可以 ( 2 )
  • 正好有三套外括号。 ((1)+(11)+(111))+((2)+(22)+(222))+((3)+(33)+(333))

如果引用单元格包含公式,则使用 FORMULATEXT FORMULATEXT(A2) 将每个单元格引用括起来。 如果有时是公式,有时是文本使用 IFERROR(FORMULATEXT(A2),A2)



PAR  添加  SIN  Excel  单元格  求和