Excel按月份查找Time列第25百分位数(四分位数1)的公式问题
解决Excel按月份计算Time列第25百分位数的问题
嘿,我来帮你搞定这个公式问题!你的原公式失效主要有两个核心原因:一是没有正确引用月份列和指定的日期条件,二是IF函数没办法直接筛选出对应月份的数据集,供QUARTILE进行统计计算。下面分两种Excel版本给你正确的解决方案:
支持动态数组的Excel版本(365/2021及以后)
这个版本可以用FILTER函数精准筛选目标月份的Time数据,再配合QUARTILE.INC计算第25百分位数(四分位数1),公式更直观:
=QUARTILE.INC(FILTER(B:B,TEXT(A:A,"mmm-yy")="Apr-17"),1)
公式说明:
TEXT(A:A,"mmm-yy"):把A列的日期转换成和你查询格式一致的文本(比如Apr-17),确保条件匹配;FILTER(B:B,...):筛选出A列对应Apr-17的所有Time数据;QUARTILE.INC(...,1):对筛选后的数据集计算第25百分位数(参数1代表四分位数1)。
如果你想更精准(避免文本格式不匹配的问题),可以直接用日期的月份和年份判断:
=QUARTILE.INC(FILTER(B:B,MONTH(A:A)=4,YEAR(A:A)=2017),1)
旧版Excel(不支持动态数组,比如2019及更早)
旧版需要用数组公式,输入完成后按Ctrl+Shift+Enter三键结束(不能只按Enter),公式如下:
=QUARTILE(IF(TEXT(A:A,"mmm-yy")="Apr-17",B:B),1)
同样,用日期属性判断的精准版数组公式:
=QUARTILE(IF((MONTH(A:A)=4)*(YEAR(A:A)=2017),B:B),1)
注意事项:
- 确保A列是真正的日期格式,不是文本格式,否则日期判断会失效;
- 如果用
TEXT函数匹配,要保证查询的文本(比如Apr-17)和转换后的格式完全一致(包括大小写、月份缩写长度)。
内容的提问来源于stack exchange,提问作者George




