如何计算在Excel中满足两个条件的列值的中值?

我有一个excel表格:

+-------------+--------------+ | Type (C) | value(D) | +-------------+--------------+ | AAA | 0000 | | BBB | 12004 | | AAA | 5675 | | BBB | 0000 | | BBB | 7880 | | AAA | 9563 | | AAA | 878 | +-------------+--------------+ 

我想要AAAtypes的正数(大于零)值的中位数。

我试过:

 =MEDIAN(IF(AND(C$2:C$6950="AAA",D$2:D$6950>0),D$2:D$6950)) 

它返回零。 该表有许多大于零的值,因此它应该大于零。 如何做这个查询?

你不能在这里使用AND命令,它不起作用,而是将两个布尔部分相乘。 这将实现与AND相同的事情。

 =MEDIAN(IF((D$2:D$6950>0)*(C$2:C$6950="AAA"),D$2:D$6950)) 

按Ctrl,Shift,Enter将公式放入。对于给出的数据,我得到了5675的中位数。

如果D列中的“数字”以stringforms存储,则需要使用不同版本的公式来应对转换

 =MEDIAN(IF((D$2:D$6950<>"0000")*(C$2:C$6950="AAA"),VALUE(D$2:D$6950)))