如何将提取数字的Excel公式转换为数组公式实现求和?
批量提取数字并求和的Excel解决方案
方案1:SUMPRODUCT函数(全版本兼容)
直接用SUMPRODUCT实现批量运算,无需按数组公式快捷键,公式如下:
=SUMPRODUCT(IF(OR(O:O="",O:O="Notes"),0,MID(O:O,17,LEN(O:O)-58)*1))
- 作用:自动遍历O列所有单元格,对空值/标题行返回0,有效行提取数字后求和
- 优势:兼容绝大多数Excel版本,写法简单直接
方案2:动态数组组合公式(Excel 365/2021+)
如果你的Excel支持动态数组函数,可改用更灵活的逻辑,避免固定长度依赖:
=SUM(--TEXTBEFORE(TEXTAFTER(FILTER(O:O,O:O<>"",O:O<>"Notes"),"contains ")," empty"))
分步逻辑:
FILTER筛选出非空、非标题的有效单元格TEXTAFTER提取"contains "之后的内容TEXTBEFORE提取" empty"之前的数字文本--将文本转为数值,最后SUM求和
方案3:优化提取逻辑(兼容全版本,更稳定)
原公式的固定长度(LEN(O1)-58)易因文本变动失效,可改用动态定位:
=SUMPRODUCT(IF(OR(O:O="",O:O="Notes"),0,--MID(O:O,FIND("contains ",O:O)+9,FIND(" empty",O:O)-FIND("contains ",O:O)-9)))
- 用
FIND动态定位数字的起始和结束位置,避免文本长度变化导致提取错误
内容的提问来源于stack exchange,提问作者Alejandro Vargas
相关产品推荐
相关产品推荐

