在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
。乘以BC
和BD
的值来得到你的最终结果。
一个注意:
您可以使这个公式更有效率/更快地计算(如果您在工作表中使用它,例如通过replaceBC:BC
来包含所需的最大行数,例如BC:BC
成为BC1:BC1000
– 因此不必为整列而尝试计算。
希望这可以帮助!!
对于"begins with stack"
您可以使用LEFT
function,例如
=SUMPRODUCT((LEFT(BA:BA,5)="stack")+0,BC:BC,BD:BD)/SUMIF(BA:BA,"stack*"BC:BC)
其中5对应于search项"stack"
的长度
正如John Bustos所说,最好限制SUMPRODUCT
的范围 – 使用整列可能会很慢