好的,我在电子表格中列出了客户回报。每个客户还分配有一个风险类别(risky
或safe
),并分配有合作伙伴(P1
或P2
)。
以下是布局示例
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)))
后者可能效率更高一些