关于excel自动筛选后的数据源问题
来源:百度知道 编辑:UC知道 时间:2024/05/24 20:38:45
我用的是自动筛选,比如说,我想知道男性,18-25岁读者群中对这一刊物的喜好程度,那我就筛选出男性这一年龄层的读者,然后看程度这一列“特别喜欢”的占多少比例。但因为计数项的数据源是根据筛选情况的不同而变化的,所以我不清楚这个countif语句该怎么写,或者还是有别的处理方法。。。
我的意思是,统计结果是根据筛选内容的不同而变化的,就是说我只要下拉列表选择好条件,就能生成这一条件下的统计数据,我认可你写的函数,但是这个“男”“18-25”等条件项,都是要看筛选的内容的,而非固定值。
补充二:哦,懂了。subtotal函数很好用!那它带不带截取固定字段的功能?或者可不可以与countif套用呢,就是说我要统计subtotal后“特别喜欢”所占的比例有多少,可以吗
假定A列为姓名,B列为性别,C列为年龄,D列为喜欢程度,第一行为表头.最后一行数据在第100行,请在D102单元格输入数组公式:
=ROUND(SUM((SUBTOTAL(103,OFFSET(D1,ROW(1:99),,))=1)*(COUNTIF(OFFSET(D1,ROW(1:99),,),"特别喜欢")))/SUBTOTAL(103,D2:D100)*100,2)&"%"
公式以CTRL+SHIFT+回车结束.
用鼠标选定A1:D100,执行自动筛选.D102单元格会根据你的筛选结果自动算出不同的百分比.
注:公式中的数据范围可根据你的实际情况修改.
假设数据结构是这样的:
A列为姓名,B列为性别,C列为年龄,D列为喜欢程度
则求性别为男,年龄在18到25岁间的"特别喜欢"的人数公式为:
=sumproduct((B1:B1000="男")*(C1:C1000>=18)*(C1:C1000<=25)*(D1:D1000="特别喜欢"))
补充回答
那么,请使用subtatol函数:
其语法是:
=subtotal(是否包含隐藏值代码,数据区域)
第一个参数为2时,求包括隐藏值的数值个数
第一个参数为102时,求不包括隐藏值的数值个数
第一个参数为 9 时,求包括隐藏值的和
第一个参数为 109 时,求不包括隐藏值的和
比如你想求出D1:D100中,筛选出的个数(即不包含隐藏值)
则公式为 =subtatol(102,D1:D100)
如果E列为具体数值,可以用下面的公式进行分类汇总:
包含隐藏值的汇总公式 =subtatol(9,E1:E100)
不包含隐藏值(就是筛选出来的值)的汇总公式=subtatol(109,E1:E100)
再补充