在excel中使用通配符

我试图find一种方法来在Excel中使用sumproduct,但只能用特定string开头的logging。

基本的产品

=SUMPRODUCT(BC:BC,BD:BD)/SUM(BC:BC) 

有没有办法让每个范围都依赖于search条件? 因此,我们假设只使用BC:BC和BD:BD中的logging,BA:以Stack开头的logging。 我不认为你可以在sumproduct中使用通配符,但是我可以使用另一个函数吗?

谢谢。

你可以使用sumproduct来做到这一点…诀窍是使用--操作符将True / False更改为1/0,然后可以将其他列与该向量相乘,以便只获取语句评估的行真正

尝试这个:

 =SUMPRODUCT(--(ISNUMBER(FIND("Stack",A:A))),BC:BC,BD:BD)/SUM(BC:BC) 

为了解释,部分--(ISNUMBER(FIND("Stack",A:A)))基本上是说, If the word "Stack" exists in the cell in column A, evaluate to 1, otherwise, evaluate to 0 。乘以BCBD的值来得到你的最终结果。


一个注意:

您可以使这个公式更有效率/更快地计算(如果您在工作表中使用它,例如通过replaceBC:BC来包含所需的最大行数,例如BC:BC成为BC1:BC1000 – 因此不必为整列而尝试计算。

希望这可以帮助!!

对于"begins with stack"您可以使用LEFTfunction,例如

=SUMPRODUCT((LEFT(BA:BA,5)="stack")+0,BC:BC,BD:BD)/SUMIF(BA:BA,"stack*"BC:BC)

其中5对应于search项"stack"的长度

正如John Bustos所说,最好限制SUMPRODUCT的范围 – 使用整列可能会很慢