如何在 Excel 中计算不相邻(非连续)单元格的平均值,并排除其中的零值?
在使用 Excel 处理数据时,常常需要计算一组非相邻单元格中数值的平均值,同时排除零值(这些零值可能代表缺失数据或已清零的条目)。例如,在销售或库存报表中,某些商品在特定日期可能没有销售记录或库存为零;若直接计算平均值,零值会拉低整体结果,从而无法真实反映实际数据趋势。排除零值后,您便能更精准地聚焦于有效的数据点进行分析。
假设您有一个如下图所示的水果表格,希望计算“数量”列中所有非零单元格的平均值。以下方法将指导您通过多种实用方式在 Excel 中轻松实现这一目标——无论您的数据位于不相邻的单元格、分散在多行或多列,还是您更倾向于使用 Excel 内置功能或简洁公式,都能灵活应对。

使用公式计算不相邻单元格的平均值(排除零值)
此方法利用数组公式,快速计算不相邻单元格(例如行或列中每隔一个单元格)的平均值,并自动排除所选单元格中的零值。它适用于目标单元格遵循固定间隔模式的场景,尤其适合处理周期性数据(如每隔一天的数值)或以固定间隔分布但彼此不相邻的数据。
局限性:此方法最适合不相邻单元格按固定间隔排列的情况;若需处理任意手动选择,请参见下方基于公式的方案。
1. 请选择一个空白单元格用于显示结果,并输入以下数组公式:
=AVERAGE(IF(MOD(COLUMN(C2:G2)-COLUMN(C2),2)=0,IF(C2:G2,C2:G2))) 然后同时按下 Ctrl+Shift+Enter 键(适用于旧版 Excel;在 Excel 365 或 2019 中,只需按 )Enter 即可,因为它们支持动态数组)。

注意:公式中的 C2 和 G2 代表目标区域的起始与结束单元格,数字“2”表示列间隔。若您的不相邻单元格间隔不同,请相应调整该数值,并根据实际数据布局修改区域(C2:G2)和间隔(2)。
提示:
- 请确保所选区域包含所有您希望计算平均值的不相邻单元格。
- 如果您的数据选择并非基于固定间隔,请使用下方基于公式的解决方案来处理任意单元格。
- 该公式会自动忽略空单元格和零值,为您呈现基于有效数据点的真实平均值。
- 为避免出错,请仔细检查您的单元格引用是否正确,并在旧版 Excel 中使用指定的键盘组合键输入数组公式。
使用 VBA 宏计算不相邻单元格的平均值(排除零值)
如果您需要快速计算一组不相邻单元格的平均值(排除零值),且所选单元格无固定模式(例如需跨不同行和列手动选择特定单元格),VBA 宏可为您提供灵活而强大的解决方案——该代码将遍历您选定的单元格,自动排除所有含零值的单元格,并精准计算其余数值的平均值。
此方法特别适用于:
- 快速处理大型或不规则的数据选区。
- 保存自定义逻辑,以便在类似数据集上重复使用。
- 突破传统工作表公式在复杂条件选择方面的限制。
1. 单击开发工具 > Visual Basic;在打开的窗口中,单击插入 > 模块,并将以下代码粘贴到模块中:
Sub AverageNonAdjacentExcludeZero()
Dim rng As Range
Dim cell As Range
Dim SumVal As Double
Dim CountVal As Long
Dim SelectedRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set SelectedRng = Application.Selection
Set SelectedRng = Application.InputBox("Select non-adjacent cells to average (exclude zeros)", xTitleId, Type:=8)
On Error Resume Next
SumVal = 0
CountVal = 0
For Each cell In SelectedRng
If IsNumeric(cell.Value) And cell.Value <> 0 Then
SumVal = SumVal + cell.Value
CountVal = CountVal + 1
End If
Next
If CountVal > 0 Then
MsgBox "Average (excluding zeros): " & SumVal / CountVal, vbInformation, xTitleId
Else
MsgBox "No non-zero numeric cells selected.", vbExclamation, xTitleId
End If
End Sub 2. 单击
运行按钮,或在 VBA 编辑器中按 F5,即可弹出对话框提示您选择单元格。按住 Ctrl 键,用鼠标点击选择要计算平均值的不相邻单元格,然后单击确定,宏将立即显示排除零值后的结果。
使用 Excel 内置函数计算不相邻单元格的平均值(排除零值)
Excel 还提供了一些内置功能,几乎无需使用公式即可轻松完成此任务,非常适合快速进行一次性计算或视觉检查。
使用状态栏:
- 按住 Ctrl 键,然后用鼠标手动选择每个不相邻的单元格以计算平均值,跳过包含零值的单元格。
- 选择完成后,查看 Excel 窗口右下角的状态栏——当所选单元格超过一个时,平均值将自动显示。
- 此方法适用于快速视觉检查和小型数据集,但结果不会输出到工作表单元格中。
选择合适的方法时,请综合考虑数据量大小、所选单元格的分散程度,以及是否需要可重复使用的公式结果,还是仅需快速进行视觉检查。若遇到错误(例如)#DIV/0!),请确保所选单元格中至少包含一个非零值。使用 VBA 前,务必备份工作簿,以防运行新宏时意外丢失数据。
在 Excel 的限定区域中快速选择间隔(不相邻)的行或列:
Kutools for Excel 的选择间隔行/列功能,可让您轻松在 Excel 的限定区域中选择间隔的行或列(如下图所示)。在使用公式或宏之前,即可精准选中待处理的单元格。

Kutools for Excel——通过 300 多款必备工具全面增强 Excel 功能,助您工作更快速、更轻松,并借助 AI 功能实现更智能的数据处理与高效办公!立即获取
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱