这个 SUMPRODUCT 和 MID 公式到底起什么作用?

这个 SUMPRODUCT 和 MID 公式到底起什么作用?

在 Excel 电子表格中,我有文本条目、、H23等,并且我想对这些条目的数字部分求和,即、、。w67P45236745

我有公式

=SUMPRODUCT((0&MID($H2:$S2,1+ISERROR(LEFT($H2:$S2)+0),10))+0)

它确实能完成工作,但我不确定它在做什么,而且我不愿意在没有完全理解它的情况下使用它。有人能解释一下这个公式吗?

答案1

从单细胞公式开始,以避免混淆。

=SUMPRODUCT((0&MID($H2,1+ISERROR(LEFT($H2)+0),10))+0)
  1. 您的样本数据都以字母开头,但目的ISERROR(LEFT($H2:$S2)+0)是查找数字或字母作为第一个字符并添加1如果它是一封信。LEFT 函数默认为最左边的一个字符,并且视为 TRUE1并且 FALSE 是0。如果最左边的字符是字母,则在任何数学运算中使用它都会产生错误(例如<字符>+ 0)所以1将被添加到1在里面起始编号参数MID 函数开始于2. 如果没有产生错误,则0将被添加到1在里面起始编号范围。
  2. 10是 MID 函数尝试检索的最大字符数。如果可用字符数少于该值,则函数将检索这些字符。
  3. 如果没有数字,SUMPRODUCT 函数尝试将零长度字符串(本质上是空白)转换为数字时会遇到困难。为了防止这种情况,0是 MID 操作返回结果的前缀。
  4. MID 运算的结果(以及附加的0) 是字符串,而不是数字。只要一切顺利,结果应该都是数字。包含所有数字的字符串可以通过乘以 来转换为真数,而不会改变其数值1或添加0例如,如果你添加0“123”你得到的真实数字123

这就是所有内部操作。您所要做的就是将其扩展为多列,并允许使用SUMPRODUCT 函数作为包装器。

=SUMPRODUCT((0&MID($H2:$S2,1+ISERROR(LEFT($H2:$S2)+0),10))+0)

将列锁定为绝对的,但行保持相对的,向下填充后续行。

相关内容