我有一个包含多行的单元格,包括括号内的数字,我想用一个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)号码出现后,如果括号中还有其他注释,它也应该起作用。请参阅示例中的“(草稿)”,最后一行。
答案 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)
答案 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(SUBSTITUTE(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,希望这可以解决您的问题。