2014-03-12 100 views
0

我試圖找到一種在excel中使用sumproduct的方法,但僅限於以特定字符串開頭的記錄。在excel中使用通配符在產品中使用通配符

基本SUMPRODUCT

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

有沒有什麼辦法,使每個範圍取決於搜索條件?因此,比方說,只使用BC中的記錄:BC & BD:在BA中具有相應記錄的BD:以堆棧開始的BA。我不認爲你可以在sumproduct中使用通配符,但是我可以使用另一個函數嗎?

謝謝。

回答

2

,你可以做到這一點使用SUMPRODUCT ...訣竅是使用--操作員改變True/False1/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 - 因此不必嘗試和計算它在整個列

希望這有助於!

+0

謝謝!這正是我需要的!我只在工作表中使用它一次,所以這完美的作品! – Scott

+0

很高興工作! - 另外,由於您是新手,請記住將其標記爲解決方案。 –

0

對於"begins with stack",您可以使用LEFT函數。

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

,其中5對應於搜索詞"stack"

的長度,正如約翰·布斯托斯說,更好地限制你的範圍爲SUMPRODUCT - 利用整列可能會很慢