返回列表 上一主題 發帖

[發問] 多條件計算數值

[發問] 多條件計算數值

多條件計算數值
有三種條件,來計算符合條件的有幾個,如下圖
請問有什麼函數可以應用

回復 12# 准提部林


准大 您好
   http://forum.twbts.com/thread-21018-1-1.html
  可以請教嗎????感恩
yvonne

TOP

=COUNT(0/(MATCH(1&A2:A20,(B2:B20=1)*(C2:C20<14)&A2:A20,)=ROW(2:20)-1))

C2改成大于14, 結果仍是2, 因其下還有二個小于14~~

MATCH(A2:A20,A2:A20,)=ROW(2:20)-1 不能單獨使用, 會有問題!!
另外也要考慮A欄有空格, 用SUMPRODUCT會有錯誤值, 用COUNT較適用!

TOP

回復 10# mark761222


我是將陣列拆解出來給你看在陣列當中的結果,
我是將E2填入「MATCH($A2,$A$2:$A$10,)=ROW($A2)-1)」往下拉,
你試試看吧~

TOP

回復 9# a5007185
大大:照著你的方式做了一遍,試著了解,但我出現的好像跟你不一樣

TOP

回復 7# mark761222
  1. = SUMPRODUCT((MATCH(A2:A10,A2:A10,)=ROW(A2:A10)-1)*(COUNTIFS($A$2:$A$10,$A$2:$A$10,$B$2:$B$10,1,$C$2:$C$10,"<14")))
複製代碼
感謝以上兩位大大的分享,
我才有辦法推導出這個函式。
主要分成兩個部分,
第一個部分我在上一篇回文有解說過,
  1. = MATCH(A2:A10,A2:A10,)=ROW(A2:A10)-1)
複製代碼
總結就是反饋該範圍「是否為首次出現的編號」的陣列。
如果將該函式分配至儲存格中,效果如下。
Match_01.GIF
  1. =COUNTIFS($A$2:$A$10,$A$2:$A$10,$B$2:$B$10,1,$C$2:$C$10,"<14")
複製代碼
而此函數在計算在範圍內同時滿足相同編碼、種類為「1」且天數未滿14天三個條件的個數。
也是一樣回傳該範圍計算結果的陣列,
如果將該函式分配至儲存格中,效果如下。
Match_02.GIF

所以綜合以上兩點,
即可得到該編號在範圍中符合條件的個數,
最後再用SUMPRODUCT將陣列中的結果相加。

TOP

回復 7# mark761222

先說結論好了,
以這條函數來反饋結果會有一點問題,
因為函數本身僅反應出首次出現編號條件是否符合,
若我做以下調整,整個計算就會產生錯誤。


hcm19522大大函數的原理如下
1. MATCH(搜尋目標,搜尋範圍,搜尋方法種類) → 目標在範圍中的位置
因為號碼只能重複算一次,
所以使用Match將各項號碼在範圍中第一次出現的序數回饋出來,
如圖所示。


2. ROW(儲存格) → 儲存格列數
如同公式字面上的意思,
回傳儲存格的列數,
例如 ROW(C21) → 21

3. MATCH(A2:A10,A2:A10,)=ROW(A2:A10)-1)
分成兩個部分解釋,
首先是「=」的部分,
為了僅讓首次出現的號碼生效 (為了達成每個號碼只能重複算一次),
故設下條件「若Match的次序與行列相同才算有效」。
但因為實際的範圍是「A2:A10」,
意即順序第一個列數是2、順序第二個列數是3、順序第三個列數是4....的差別,
所以才補上「-1」來調整這個差別。
BTW,若以我示範圖中的範圍,則需要改成「-15」,因為第一順位的列數是16。

TOP

回復 4# hcm19522



MATCH(A2:A10,A2:A10,)
範圍值對應範圍值的用意是為什麼?

TOP

回復 4# hcm19522


    SUMPRODUCT((MATCH(A2:A10,A2:A10,)=ROW(A2:A10)-1)*(B2:B10=1)*(C2:C10<14))

可以幫忙說明函數都用意嗎? 例如ROW(A2:A10)-1)  為啥要-1 取這個值可以做什麼?

TOP

回復 2# faye59


    對! 是2 下面兩位大大的函數可以,感謝幫忙回答

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題