在 Excel 陣列公式中使用帶有 if 語句的 and() 公式

在 Excel 陣列公式中使用帶有 if 語句的 and() 公式

好的,我在電子表格中有一份客戶退貨清單。每個客戶還具有分配給 (risky或)的風險類別以及分配給他們 (或)safe的合作夥伴。P1P2

這是佈局的範例

  A           B          C            D
Client  |  Return  |  RiskCat  |  Partner
_________________________________________
John       1.5%       risky       P2
Bill       1.8%       risky       P1
Tim        1.2%       safe        P2
Bob        1.4%       risky       P1
Kate       2.1%       risky       P2
Fred       0.8%       safe        P1
...etc

我編寫了一個「medianif()」函數,它計算給定標準(例如風險類別)中的回報中位數,例如,如果我想找到風險類別中的回報中位數,我會這樣做:

=median(if(C:C="risky",B:B,""))

然後按 ctrl-shift-enter 將其作為數組公式輸入到儲存格中。

同樣,要找到以 P1 作為合作夥伴的人的回報中位數,我會這樣做:

=median(if(D:D="P1",B:B,""))

上面的兩個公式都適合我,但我想找到風險類別和 P1 合作夥伴的回報中位數。好吧,我嘗試:

=median(if(and(C:C="risky",D:D="P1"),B:B,""))

不幸的是,這不起作用,我收到 #value 錯誤。是否可以以這種方式使用 AND() ,如果不是,我將如何實現我之後的目標?

答案1

不,您不能以這種方式使用 AND 或 OR,因為這些函數會傳回單一結果而不是陣列。您需要使用 * 而不是 AND...或多個 IF,例如

=MEDIAN(IF((C:C="risky")*(D:D="P1"),B:B))

或者

=MEDIAN(IF(C:C="risky",IF(D:D="P1",B:B)))

後者可能稍微更有效率

相關內容