作业帮 > 综合 > 作业

excel如何在符合条件的列中求对行其他列的中位数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 06:44:03
excel如何在符合条件的列中求对行其他列的中位数
比如
A B
101 1
101 2
101 2
101 2
101 3
102 2
102 3
102 3
102 3
102 4
. .
. .
. .
A列中有101、102、103..几百个组,每组有很多数字1、2、3、4..(B列)
我现在想求101、102、103..这些组对应数字的中位数 可以求吗?比如101的中位数是2,102的中位数是3.
C1输入
=IF(COUNTIF(A$1:A1,A1)>1,"",MEDIAN(IF(A$1:A$1000=A1,B$1:B$1000)))
数组公式,输入后先不要回车,按Ctrl+Shift+Enter 结束计算,再向下填充.
若将A列当中的101、102、103提取(可用手工输入、高级筛选或公式)到C列,则公式可以简化:
D1输入
=MEDIAN(IF(A$1:A$1000=C1,B$1:B$1000))
也是数组公式.
再问: 可行 不过我想问问 你 能不能解释下这个逻辑 特别是 A$1:A1,A1这个步骤什么意思 以及为什么是"" 能把整个公式解释下吗 IF(A$1:A$1000=C1,B$1:B$1000)这个公式好像不太对啊 以为内if(条件,真值,假值)为什么你这个公式里只有条件和真值 没有价值呢
再答: 呵呵!解释公式很费事的哦。 我讲的两种方法,其中第二道公式: =MEDIAN(IF(A$1:A$1000=C1,B$1:B$1000)) 即按C列(101、102、103、……)为匹配条件返回(或计算)中位数的。 但很多情况不方便使用辅助列(C列)而需要直接得出计算结果,若直接用第二道公式 =MEDIAN(IF(A$1:A$1000=A1,B$1:B$1000)),则每个单元格都密密麻麻地返回中位数,这样看起来眼花缭乱。故用条件计数函数COUNTIF()筛选不符合条件的单元格,只保留A列唯一一个匹配条件返回中位数。即第一道公式: C1=IF(COUNTIF(A$1:A1,A1)>1,"",原公式) 从里到外解释: A$1当中的“$”——绝对化符号,公式向下填充时,原A1位置绝对不变。 COUNTIF(A$1:A1,A1)——统计A$1~A1单元格区域当中匹配A1的单元格个数,这肯定=1; 随着公式公式的向下填充到C2,“A$1:A1,A1”变成“A$1:A2,A2”,COUNTIF(A$1:A2,A2)=2、…… ""——半角双引号里面没内容,即为“空值” IF(COUNTIF(A$1:A1,A1)>1,"",原公式)——IF(判断条件,满足条件的返回值,不满足合条件的返回值) C1里面,COUNTIF(A$1:A1,A1)=1,不>1,不满足条件,返回原公式;C2~C5均>1,符合条件,返回空值。 公式下拉到C6,A6是第一个102,COUNTIF(A$1:A6,A6)又是=1,即不满足条件,返回原公式、…… 第一道改为=IF(COUNTIF(A$1:A1,A1)=1,MEDIAN(IF(A$1:A$1000=A1,B$1:B$1000)),"")也许较易理解,但我习惯这样编写公式。哈哈!