求可跳过空白单元格的列相乘公式或VBA代码
实现指定单元格相乘并跳过空白单元格的Excel方案
Excel公式方案
数组公式(兼容全版本Excel)
输入以下公式后,按 Ctrl+Shift+Enter 组合键完成输入(旧版Excel必须用此方式,新版Excel也支持):
=PRODUCT(IF({A1,C1,E1,G1,I1,K1}<>"", {A1,C1,E1,G1,I1,K1}, 1))
逻辑:将指定单元格转为数组,把空白单元格替换为1(乘1不影响乘积结果),再用PRODUCT函数计算最终乘积。
动态数组公式(仅适用于Excel 365/2021及以上版本)
直接输入公式即可,无需按组合键:
=PRODUCT(IF({A1,C1,E1,G1,I1,K1}<>"", {A1,C1,E1,G1,I1,K1}, 1))
VBA自定义函数方案
如果需要更灵活的调用(比如批量处理或复杂单元格选择),可以用自定义函数:
- 按
Alt+F11打开VBA编辑器 - 右键点击当前工作簿 → 插入 → 模块
- 粘贴以下代码:
Function MultiplyNonBlank(ParamArray rngs() As Variant) As Double Dim result As Double result = 1 Dim cell As Variant Dim item As Variant For Each item In rngs If TypeName(item) = "Range" Then For Each cell In item If cell.Value <> "" And IsNumeric(cell.Value) Then result = result * cell.Value End If Next cell Else If item <> "" And IsNumeric(item) Then result = result * item End If End If Next item MultiplyNonBlank = result End Function
使用方式:在Excel单元格中输入 =MultiplyNonBlank(A1,C1,E1,G1,I1,K1),即可得到跳过空白后的乘积。
内容的提问来源于stack exchange,提问作者Itzme ram
相关产品推荐
相关产品推荐

