关于excel自动筛选后的数据源问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 20:38:45
小弟最近在做某一书刊的市场调查的数据分析。excel的录入工作已经完成。接下来的想法是根据不同组别的筛选,自动关联到对应的统计项。
我用的是自动筛选,比如说,我想知道男性,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)

再补充