2017-09-08 124 views
0

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

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

但我需要延长的办法......这里的内容单一的Excel单元格中的,而我寻找一个公式作为一个例子,应该结果在“8”和:

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

可能的方法:式中应该搜索的所有的数字掩模<“(” X“h)”时>,其中x必须被求和式的内部。

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

UPDATE2:它也应该在括号中还有其他注释的情况下工作,同样在第一个(xh)号码出现之后。请参阅示例中的“(草稿)”,最后一行。

+0

您是在寻找单细胞配方还是可以将其分解为几列/细胞? –

+0

@Glitch_Doctor我正在寻找一个单元格公式,它位于源单元格旁边(请参阅上面的示例)。可以在同一行有另一个单元格(我可以隐藏这个单元格),但它不能分布在多行。 – Chris

+0

所以,如果你说你可以有另一个细胞,你可以隐藏,那么它可以在几个细胞?只要你有源单元格,最后的公式单元格旁边,那么几个隐藏的计算单元格? – ChrisM

回答

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 + 输入在一起。

REVISED:

这里是阵列式(点击Ctrl键 + + 输入一起)提取两个数字:

{=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.希望这可以解决您的问题。

+0

谢谢,这已经适用于单个数字1,2,....如何更改公式以覆盖数字> = 10? (我更新了我的问题)。此外,它应该只包含带有后缀“h”的数字。这是否工作? – Chris

+0

@Chris,所以从你的例子来看,结果应该是16不是9,对吗?另外,你只提到检索带有后缀h的数字,这些数字是否会被圆括号'()'包围? – ian0411

+0

是的,在这个例子中它应该是16。对于你的第二个评论也是:他掩盖的相关数字是<"(" x "h)">。 – Chris

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

相关问题