You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中按性别返回接近年龄均值或中位数的数值

在Google Sheets中按性别分组获取接近平均值/中位数的年龄值

准备工作

假设原始数据位于A1:C9(表头在第1行,数据从第2行开始)。

方法一:获取接近平均值的年龄值

  • 生成唯一性别列表:在空白单元格(比如E2)输入公式,提取不重复的性别:
    =UNIQUE(A2:A9)
    
  • 计算每组的平均年龄:在F2单元格输入公式,对应E列的性别计算平均年龄(保留两位小数):
    =ROUND(AVERAGEIF(A:A, E2, C:C), 2)
    
    下拉填充公式到所有性别行。
  • 找到最接近平均值的年龄:在G2单元格输入公式,匹配当前性别下,与平均值差值最小的年龄:
    =XLOOKUP(MIN(ABS(FILTER(C:C, A:A=E2)-F2)), ABS(FILTER(C:C, A:A=E2)-F2), FILTER(C:C, A:A=E2),,0,1)
    
    下拉填充公式到所有性别行。若有多个年龄与平均值差值相同,公式会返回最先出现的那个值。

方法二:获取接近中位数的年龄值

  • 计算每组的中位数:把F列的平均值公式替换为中位数公式:
    =MEDIANIF(A:A, E2, C:C)
    
  • 找到最接近中位数的年龄:G列的公式直接复用,只需将F2换成中位数所在单元格即可:
    =XLOOKUP(MIN(ABS(FILTER(C:C, A:A=E2)-F2)), ABS(FILTER(C:C, A:A=E2)-F2), FILTER(C:C, A:A=E2),,0,1)
    

一键生成结果(数组公式)

如果不想手动下拉填充,可在E2单元格输入以下数组公式,一次性生成性别、平均年龄、最接近平均值的年龄三列结果:

=BYROW(UNIQUE(A2:A9), LAMBDA(g, {g, ROUND(AVERAGEIF(A:A, g, C:C),2), XLOOKUP(MIN(ABS(FILTER(C:C,A:A=g)-AVERAGEIF(A:A,g,C:C))), ABS(FILTER(C:C,A:A=g)-AVERAGEIF(A:A,g,C:C)), FILTER(C:C,A:A=g),,0,1)}))

内容的提问来源于stack exchange,提问作者Kalyan Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:45:35