在excel中的sumproduct中使用通配符

时间:2014-03-12 13:54:23

标签: excel

我试图找到一种在excel中使用sumproduct的方法,但仅限于以某个字符串开头的记录。

基本的产品

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

有没有办法让每个范围都依赖于搜索条件?所以,让我们说,只使用BC中的记录:BC& BD:在BA中具有相应记录的BD:以Stack开头的BA。我不认为你可以在sumproduct中使用通配符,但还有其他功能吗?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用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获得最终结果。


一个注意事项:

您可以使此公式更有效/更快地计算(如果您在工作表中使用它很多,例如,通过替换BC:BC来包含您想要的最大行数,因此,例如BC:BC变为BC1:BC1000 - 因此无需尝试为整个列计算它。

希望这会有所帮助!!

答案 1 :(得分:0)

对于"begins with stack",您可以使用LEFT函数,例如

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

其中5对应于搜索词"stack"

的长度

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