Excel:匹配A、B列并结合D列条件,计算对应C列平均值
嘿,这两个Excel计算需求我太熟了,给你准备了**公式法(一步出结果)和手动操作法(适合怕写公式的朋友)**两种方案,按需取用:
1. 基础计算:匹配A/B列后求对应C列平均值
需求核心:找出B列中在A列有匹配值的单元格,计算它们对应C列数值的平均值(示例结果:5.66666)
公式法(推荐)
直接在空白单元格输入以下数组公式,按 Ctrl+Shift+Enter 完成输入(Excel 365/2021版本直接回车即可):
=AVERAGE(IF(COUNTIF(A:A,B:B)>0,C:C))
公式解释:
COUNTIF(A:A,B:B):逐个检查B列的每个值是否在A列中存在,返回大于0的结果代表该B列值在A列有匹配IF(...,C:C):只保留B列匹配成功的那些行对应的C列数值AVERAGE(...):对筛选出来的C列数值计算平均值
手动操作法
如果不想写公式,可以按以下步骤来:
- 选中B列所有数据,点击「开始」选项卡 → 「条件格式」→ 「突出显示单元格规则」→ 「重复值」,在弹出窗口选择「存在于A列」(或用「自定义格式」结合公式
=COUNTIF(A:A,B1)>0标记匹配项) - 选中整个数据区域,点击「数据」选项卡 → 「筛选」,点击B列的筛选按钮,只勾选被标记的匹配单元格
- 在空白单元格输入
=SUBTOTAL(1,C:C),这个函数会自动计算筛选后可见的C列数值的平均值
2. 进阶计算:先筛选D列=「apple」的A列值,再匹配求平均
需求核心:先把A列中对应D列值为「apple」的条目挑出来作为匹配池,再找出B列中在这个池子里的单元格,计算对应C列的平均值(示例结果:7.5)
公式法(推荐)
同样用数组公式,在空白单元格输入后按 Ctrl+Shift+Enter(Excel 365/2021直接回车):
=AVERAGE(IF(ISNUMBER(MATCH(B:B,IF(D:D="apple",A:A),0)),C:C))
公式解释:
IF(D:D="apple",A:A):先提取出所有D列值为「apple」的行对应的A列值,形成一个临时的匹配池MATCH(B:B,...,0):检查B列每个值是否在这个匹配池中,ISNUMBER把匹配结果转为TRUE/FALSEIF(...,C:C):筛选出匹配成功的B列对应的C列数值AVERAGE(...):计算这些数值的平均值
手动操作法
步骤稍复杂,但直观易懂:
- 选中整个数据区域,点击「数据」→「筛选」,点击D列的筛选按钮,只勾选「apple」
- 复制筛选后可见的A列数据,粘贴到工作表的空白区域(比如E列)作为临时匹配池
- 取消D列的筛选,回到原数据,点击B列的筛选按钮 → 「文本筛选」→ 「包含」→ 选择「E列」的区域(或用「高级筛选」,设置条件区域为E列的匹配池)
- 筛选完成后,在空白单元格输入
=SUBTOTAL(1,C:C)即可得到平均值
内容的提问来源于stack exchange,提问作者Ivonne Jansen-Dings
相关产品推荐
相关产品推荐

