我試圖找到一種在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
很高興工作! - 另外,由於您是新手,請記住將其標記爲解決方案。 –