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
我想计算一行的平均值。 colour
和type
可以不用管,我用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 适合的范围并选择性粘贴,添加.
我正在处理一份质量报告,我已将数据导入 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
我想计算一行的平均值。 colour
和type
可以不用管,我用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 适合的范围并选择性粘贴,添加.