har*_*ryg 6 worksheet-function microsoft-excel microsoft-excel-2010
好的,所以我在电子表格中列出了客户退货清单。每个客户还具有分配给 (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
Run Code Online (Sandbox Code Playgroud)
我写了一个“ medianif()”函数,它计算给定标准(例如风险类别)中的回报中位数,例如,如果我想找到风险类别中的回报中位数,我会这样做:
=median(if(C:C="risky",B:B,""))
Run Code Online (Sandbox Code Playgroud)
然后按 ctrl-shift-enter 将其作为数组公式输入到单元格中。
同样,为了找到那些以 P1 作为合作伙伴的人的回报中位数,我会这样做:
=median(if(D:D="P1",B:B,""))
Run Code Online (Sandbox Code Playgroud)
上面的两个公式都对我有用,但说我想找到风险类别和 P1 合作伙伴的回报中位数。好吧,我尝试:
=median(if(and(C:C="risky",D:D="P1"),B:B,""))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,我收到了 #value 错误。是否可以以这种方式使用 AND() ,如果不能,我将如何实现我所追求的目标?
不,您不能以这种方式使用 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)))
后者可能稍微更有效