【问题标题】:EXCEL_How to convert text into numberEXCEL_如何将文本转换为数字
【发布时间】:2016-12-03 18:05:48
【问题描述】:

我正在编写质量报告,并将数据导入工作表。但数字都保留为文本,在一列中的单独单元格中。

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

【问题讨论】:

  • 您是否尝试将 Excel 工作表中的单元格格式从文本更改为数字?
  • 您可以使用CInt将您的号码转换为字符串存储,但如果有字符串,您还需要一些错误处理。
  • 是的,但它不起作用。 number 位于单元格的右侧,但 text 位于左侧。并且平均值的单元格仍然处于错误中。
  • 用 Excel 表中的示例数据更新您的问题。
  • @Hiddenllyy 您提供的样本数据是 2 列吗?还是 1?你想计算什么平均值?重量 ?长度?

标签: excel excel-formula worksheet-function vba


【解决方案1】:

跟进 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公式。完成后,右 {} 括号将出现在公式栏中的公式周围。请注意,不能为整个公式手动添加 {}。

概念证明


更新#

示例数据更改后

=AVERAGE(VALUE(C9:D9))

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

概念证明 II

【讨论】:

  • 非常感谢您的耐心等待,很抱歉我中途更改了示例!我已经测试了你的代码,它运行良好,但我仍然必须选择一个答案,亚历克西斯先生是第一位的,所以......虽然谢谢!祝你有美好的一天:)
【解决方案2】:

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

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

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

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

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

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

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

【讨论】:

  • 谢谢,您的代码似乎应该可以工作,但错误仍然变为value error。而之前,我只使用AVERAGE(A1:A10),当我将数字更改为number 时,它可以毫无错误地计算,但是用你的新公式它仍然不起作用。真的很奇怪。
  • 输入公式后,您确定在公式周围看到 { }?
  • 好的!我找到了错误,谢谢你们!
【解决方案3】:

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

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

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

【讨论】:

  • 转换为数字后,如果有的话,就用平均数吧
  • 不只是平均数是首选,我正在回想我们看到的第一组示例数据。我不知道绿色三角形的把戏。很高兴你发布了这个。
猜你喜欢
  • 2019-10-21
  • 2015-05-13
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多