我试图找到一种在excel中使用sumproduct的方法,但仅限于以特定字符串开头的记录。在excel中使用通配符在产品中使用通配符
基本SUMPRODUCT
=SUMPRODUCT(BC:BC,BD:BD)/SUM(BC:BC)
有没有什么办法,使每个范围取决于搜索条件?因此,比方说,只使用BC中的记录:BC & BD:在BA中具有相应记录的BD:以堆栈开始的BA。我不认为你可以在sumproduct中使用通配符,但是我可以使用另一个函数吗?
谢谢。
我试图找到一种在excel中使用sumproduct的方法,但仅限于以特定字符串开头的记录。在excel中使用通配符在产品中使用通配符
基本SUMPRODUCT
=SUMPRODUCT(BC:BC,BD:BD)/SUM(BC:BC)
有没有什么办法,使每个范围取决于搜索条件?因此,比方说,只使用BC中的记录:BC & BD:在BA中具有相应记录的BD:以堆栈开始的BA。我不认为你可以在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
- 然后你含多处y的值为BC
& BD
以获得最终结果。
一个注意:
你可以把这个公式更高效/快速地计算(如果你用它在你的表很多,通过更换,例如,BC:BC
为包括你想要的最大行数,因此,例如BC:BC
变得BC1:BC1000
- 因此不必尝试和计算它在整个列
希望这有助于!
对于"begins with stack"
,您可以使用LEFT
函数。
=SUMPRODUCT((LEFT(BA:BA,5)="stack")+0,BC:BC,BD:BD)/SUMIF(BA:BA,"stack*"BC:BC)
,其中5对应于搜索词"stack"
的长度,正如约翰·布斯托斯说,更好地限制你的范围为SUMPRODUCT
- 利用整列可能会很慢
谢谢!这正是我需要的!我只在工作表中使用它一次,所以这完美的作品! – Scott
很高兴工作! - 另外,由于您是新手,请记住将其标记为解决方案。 –