2017-07-31 32 views
0

我有一個Excel列表看起來像這樣:計數的數量與乘法條件

enter image description here

,我需要計算已在行C.但如果成品價值行的金額Ť價值B列含有一個Semikolon它HASE到計數,如果它包含2 Semikolons它HASE計數等等......

她是一張照片,顯示計數如何工作。

enter image description here

我將不能夠另一列添加到表,所以我鎖定了一個矩陣Fomula或這樣的事情。

直到現在,我試了Countif和Countifs公式,但沒有奏效。 有人可以給我一個提示如何做thsi或waht Fomula將是最好的使用?

+0

我是在excel而不是VBA中使用公式的一個信徒。如果可能的話。但我想不出一個會這樣做的公式。 VBA不是一種選擇嗎? – Zac

+0

爲了簡單起見,我會用一個單獨的D列來計算每個單元格中分號的數量,然後做一個產品 – Dan

+0

@丹恩是的,我認爲是一個分離的列,但我認爲必須有一個用公式來做到這一點。 ^^ – Moosli

回答

4

對於你的「完成」總,使用此式(根據需要調節範圍,以適應實際數據):

=SUMPRODUCT((LEN($B$5:$B$28)-LEN(SUBSTITUTE($B$5:$B$28,";",""))+1)*($C$5:$C$28="Finished")) 

爲了您「待定」總,如果需要同樣的處理,用這個公式:

=SUMPRODUCT((LEN($B$5:$B$28)-LEN(SUBSTITUTE($B$5:$B$28,";",""))+1)*($C$5:$C$28="Pending")) 
+0

這就是我一直在尋找的。非常感謝你。 – Moosli

1

您是否允許使用/創建一個新的工作表(包含數據的工作表除外)?如果是的話,您可以隨時計算您需要的值,以便在單獨的工作表中工作,然後使用單元格引用將值拉回原始工作簿。所以,在Sheet2中(例如),我將有兩列:

PENDING:=IF(Sheet1!$C4="Pending",1+LEN(Sheet1!$B4)-LEN(SUBSTITUTE(Sheet1!$B4,";","")),0)

表面處理:=IF(Sheet1!$C4="Finished",1+LEN(Sheet1!$B4)-LEN(SUBSTITUTE(Sheet1!$B4,";","")),0)

填補這一公式遠了需要。

然後,在你原來的表,你想進入的款項(我把它叫做工作表Sheet1在上面的公式,你會做一個=SUM(Sheet2!$B$1:$B$25)來填充完成的金額會待細胞和=SUM(Sheet2!$A$1:$A$25)

** 如果您不允許使用一個新的工作,我會說VB腳本將是唯一的其他選擇。

EDITED 最好的解決辦法是以前提供的SUMPRODUCT公式。

+1

Sumproduct函數將內部語句轉換爲數組版本(不需要Ctrl + Shift + Enter),這就是Len函數如何被允許接受一系列單元格以提供正確答案。我可以驗證提供的公式是否正確計算。 – tigeravatar

+0

我糾正:)你每天都會學到新的東西。不確定爲什麼它在第一次測試時沒有給出正確的答案。我會虛心向上投票你的答案 –