如何用Excel公式对单个单元格的多个括号括起来的数字求和?

时间:2017-09-08 10:08:10

标签: excel-formula

我有一个包含多行的单元格,包括括号内的数字,我想用一个Excel公式(没有 VBA)总结。

以下方法适用于单支架: https://exceljet.net/formula/extract-text-between-parentheses

但是我需要扩展方法...这里是我搜索公式的一个单元格单元的内容的示例,这应该导致总和为“8”:

The task requires following effort (incl. documentation)
- create plan (2h)
- execute test (14h)
- write report (draft) (2h)

可能的方法:公式应搜索掩码内的所有数字<“(”x“h)”&gt ;,其中x必须总结。

更新:该公式还应使用数字> = 10。

UPDATE2:在第一个(xh)号码出现后,如果括号中还有其他注释,它也应该起作用。请参阅示例中的“(草稿)”,最后一行。

2 个答案:

答案 0 :(得分:1)

我很欣赏这不是优雅的,但是它有效。我现在没有时间在这里运行逻辑(可能会在稍后编辑它)但实质上它是一个搜索索引逻辑的负载。

我为每个公式使用了5列,假设最多有5个值,但您可以根据需要通过将公式拖到更多列上进行调整,因为它将开始在上一列之后查找下一个“(?h)”找到了价值。

红细胞公式:=SEARCH("(?h)",$A1)&" - "&SEARCH("h)",$A1)

橙色细胞配方:=SEARCH("(?h)",$A1,MID(B1,SEARCH("- ",B1)+2,LEN(B1)-(SEARCH("- ",B1)+1))*1)&" - "&SEARCH("h)",$A1,MID(B1,SEARCH("- ",B1)+2,LEN(B1)-(SEARCH("- ",B1)+1))+1)

黄色单元格公式:=MID($A1,LEFT(B1,SEARCH(" - ",B1))+1,((MID(B1,SEARCH("- ",B1)+2,LEN(B1)-(SEARCH("- ",B1)))*1)-(LEFT(B1,SEARCH(" - ",B1))*1))-1)*1

绿色细胞公式:=SUMIF(G1:K1,">="&0)

enter image description here

答案 1 :(得分:1)

借用这篇文章#6(https://www.mrexcel.com/forum/excel-questions/362184-extracting-multiple-numbers-string.html)中的公式并进行修改以满足您的需要(单细胞公式)。假设您要在cell B1中输入公式:

{=SUM(VALUE(MID(0&A1,LARGE(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))*ROW(INDIRECT("1:"&LEN(A1))),ROW(INDIRECT("1:"&LEN(A1))))+1,1)))}

基本上这是为每个字符分配其索引,然后得到数值来总结。请注意这是一个数组公式。请一起点击 Ctrl + Shift + 输入

<强>修订版

这是数组公式(单击 Ctrl + Shift + 输入)以提取两位数数:

{=SUMPRODUCT(IFERROR(0+("0"&TRIM(MID(SUBSTITUTE(SUBSTITUTE(S‌​UBSTITUTE(LOWER(MID(‌​‌​A1,SEARCH("h)",A1)‌​-4,LEN(A1))),"h","")‌​,")","("),"(",REPT(" ",1000)),ROW(INDIRECT("1:20"))*2*1000-999,1000))),0))}

这样做的目的是首先按删除不必要的内容来删除文字,删除h措辞并将)转换为999个空格。然后你可以提取数字并加起来。 IFERROR会将数字设置为0,希望这可以解决您的问题。