EXCEL_如何将文本转换为数字

时间:2016-07-29 06:17:36

标签: excel excel-vba excel-formula worksheet-function vba

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

                        | 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中完成此任务,所以如果您有任何想法,请发表评论,谢谢。

3 个答案:

答案 0 :(得分:2)

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

如果您确实想要平均重量,因为平均重量和长度从单位角度看起来没有意义,您可能想尝试:

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

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

AVERAGEIF没有完全奏效,因为第三个论点是要求平均范围,我们错过了将文本数转换为实际数字的机会。

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

概念证明

POC

UPDATE#

示例数据更改后

=AVERAGE(VALUE(C9:D9))

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

概念验证II

POC II

答案 1 :(得分:1)

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

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

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

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

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

编辑:在您的示例中,您可能希望平均特定行。在这种情况下,请查看AVERAGEIF函数。

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

答案 2 :(得分:1)

  

我正在寻找将它们更改为数字然后进行计算的方法

为了避免数组公式的缺点,以非数组形式使用@Alexis Olson或@Forward Ed的解决方案会更加简单,但选择之后范围包含绿色三角形并单击"转换为数字" '在'左上角的绿色三角形。

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