在 Excel 中,如果不使用 VBA,公式如何对包含数字和表示数字的文本的单元格区域进行求和?

在 Excel 中,如果不使用 VBA,公式如何对包含数字和表示数字的文本的单元格区域进行求和?

是否有公式、函数或函数组合可以对一系列单元格进行求和,其中一些单元格包含数字,一些单元格包含表示数字的文本?换句话说,我们如何在一个公式中将一系列单元格中的文本转换为数字,然后对该一系列单元格执行求和,而无需使用 VBA?

例如,我有一个范围 F11 到 G11,并且 F11 具有文本其中有“43”,而G11有数字2。如何使用公式使总和(F11:G11)达到 45 而不是 2 ?

答案1

我认为这可以通过使用 VALUE 函数的 SUM 来解决。请参见下面的屏幕截图。

在此处输入图片描述

F11 是文本格式。G11 是数字(通用)。

VALUE 函数将 TEXT 转换为数字并将其包装在 SUM 中。

=SUM(VALUE(F11:G11))

在我的 Excel 2021 中,此操作无需按 CTRL + SHIFT + ENTER 即可完成,但在旧版本的 Excel 中,您可能需要在公式栏中同时按 CTRL + SHIFT + ENTER 来创建数组公式。公式将自动括在花括号中。

检查这是否是您想要的以及是否适合您。

另外,请确保预先将要输入结果公式的单元格的格式设置为“数字”或“常规”。

答案2

据我所知,没有内置公式可以做到这一点。

您可以取一个中间范围,将文本转换为中间范围内的数字。

使用函数 ISNUMBER 确定单元格中的内容。如果不是数字,则转换;如果是数字,则不转换。

然后对中间范围求和。

这是一个简单的概念,无需 VBA 即可运行。

正如我所说,据我所知,没有内置的 Excel 公式可以精确地完成您想要的操作。

答案3

找到答案了。为了避免使用数组(在较旧的 Excel 中需要手动按 ctrl-shift-enter),SUMPRODUCT应使用函数而不是函数SUM。然后可以将范围内的所有值乘以 1(或用“--”双重否定),以在求和之前将它们转换为数字:

           =SUMPRODUCT(1*F11:G11)

或者:

           =SUMPRODUCT(--F11:G11)

因此@Ron Rosenfeld 的建议确实是答案,但对于较旧的 Excel 来说,请使用SUMPRODUCT而不是SUM

它的工作无需人工干预!如果范围随时间而变化(就像我的情况一样),则通过适当使用OFFSET函数来定义动态范围。

相关内容