Excelsearch一个string,并在单元格中有多less个字符

我在Excel中有一个包含位置的列表,但有些单元格有多个由“_”字符分隔的位置,例如“_ Location1 _ Location 2”当只有一个位置时,我可以使用Sumif来searchstring,单元格如图所示 在这里输入图像说明

我的问题不是search一个string,而是在列表中search一个字符,并find有多less在它发现的单元格中,我将添加公式在一个不同的单元格,然后上面显示的

示例公式NOT REAL

=sum(Sumif($A$4:$A$250,"* ~ Location1*",$C$4:$C$250)/Search($A$4:$A$250," ~ ")) 

我知道search这样的工作,但作为一个例子代码这是我想象的

find每个位置的总和使用这个数组公式:

 =SUMPRODUCT((ISNUMBER(SEARCH(D4,$A$4:$A$9)))*($C$4:$C$9/(IF(ISNUMBER(FIND("_",$A$4:$A$9)),LEN($A$4:$A$9)-LEN(SUBSTITUTE($A$4:$A$9,"_","")),1)))) 

作为一个数组公式需要使用Ctrl-Shift-Enter确认。 如果正确完成,则Excel将在公式周围放置{}

在E4中input公式,按Ctrl-Shift-Enter,然后复制/填写。

然后得到所有的总和简单地总结上面的行。

在这里输入图像说明


用正则expression式来做:

您将需要一个帮助者列与以下公式:

 =C4/(IF(ISNUMBER(FIND("_",A4)),LEN(A4)-LEN(SUBSTITUTE(A4,"_","")),1)) 

我把它放在G列

在这里输入图像说明

那么我们可以使用一个简单的SUMIF():

 =SUMIF(A:A,"*" & D4 & "*",G:G) 

在这里输入图像说明