EXCEL_How 将文本转换为数字

EXCEL_How to convert text into number

我正在处理一份质量报告,我已将数据导入 sheet。但是数字都保留为文本,在一列中的单独单元格中。

                        | Average
colour | red   | red    | 
weight | 1.6   | 1.56   | 1.58
length | 1.1   | 1.12   | 1.11
type   | A     | A      | A
colour | green | green  | 
weight | 1.4   | 1.5    | 1.45
length | 10    | 9.6    | 9.8
type   | B     | B      

我想计算一行的平均值。 colourtype可以不用管,我用IF函数来判断测试是不是这两个然后再根据结果做其他的事情,如果测试不是(这意味着结果应该是一个数字),我想计算平均值。

但是我会因为这个问题遇到DIV/0错误。抱歉,我没有找到公式或 VBA 中的任何代码来完成此任务,所以如果您有任何想法,请发表评论,谢谢。

假设您的数组 A1:A10 将文本和数字混合存储为文本。您可以取以下数值的平均值:

=AVERAGE(IFERROR(VALUE(A1:A10),""))

这是一个数组公式,因此需要使用 Ctrl+Shift+Enter 输入。

重要提示:这会将空白单元格视为零!如果你想忽略空白,你可以添加处理。

=AVERAGE(IFERROR(IF(ISBLANK(A1:A10),"",VALUE(A1:A10)),""))

编辑:在您的示例中,看起来您可能想要计算特定行的平均值。在这种情况下,查看 AVERAGEIF 函数。

我也无法判断您的数据是在一列还是两列中。如果它是一个,你首先需要使用带有“|”的文本到列作为将其一分为二的分隔符。

跟进 Alexis Olson 对你如何平均你的数字的评论。如果这只是示例数据,而您的真实数据是文本和数字的组合,请坚持 Alexis Olson 的回答。

但是,如果您确实只想对重量进行平均,因为从单位角度对重量和长度进行平均并没有实际意义,您可能想尝试:

=SUMPRODUCT(($B:$B=E)*IFERROR(VALUE($C:$C),0))/COUNTIF($B:$B,E)

=SUM(($B:$B=E)*IFERROR(VALUE($C:$C),0))/COUNTIF($B:$B,E)

AVERAGEIF 不太有效,因为第三个参数要求求平均范围,我们错过了将您的文本数字转换为实际数字的机会。

以上两个公式都是 CSE 或 ARRAY 公式,这意味着您需要使用 CONTROL+SHIFT+ENTER 完成公式输入时。完成后,右 {} 括号将出现在公式栏中的公式周围。请注意,无法为整个公式手动添加 {}。

概念验证


更新#

示例数据更改后

=AVERAGE(VALUE(C9:D9))

这是一个单元胞数组公式。将它放在您想要平均值的第一个单元格中,并确保使用 CONTROL+SHIFT+ENTER输入公式时,在输入公式后查找公式周围的 { } 然后,您可以将公式向下拖动或将其复制到您想要的单个单元格中

概念验证 II

I'm looking for the way to change them into number and then do the calculate

为了避免数组公式的缺点,以非数组形式使用@Alexis Olson 或@Forward Ed 的解决方案会简单得多,但 after select查看包含绿色三角形的范围并单击 "Convert to number" 'in' 左上角的绿色三角形。

如果未显示绿色三角形,请打开错误检查(选项 > 公式)或在备用单元格中插入 0,复制该单元格,select 适合的范围并选择性粘贴,添加.