我有一份Excel报告,其中包含多列文本和几列数字,这些列以文本形式存储。
是否有一种简单的方法可以将存储为文本的数字转换为数字,而不会影响实际的文本数据?
答案 0 :(得分:32)
我发现将“存储为文本的数字”转换为数字数字的最简单快捷的方式是
除了快速,这还具有就地转换的优势。
“选择性粘贴”位于“经典”版本的Excel(2003及更早版本)的“编辑”菜单中,或位于“功能区”版本的Excel(2007 +)的“主页”选项卡的“剪贴板”部分中。
答案 1 :(得分:11)
如果您只想将该文本作为不同单元格中的数字,请使用VALUE
功能。
答案 2 :(得分:3)
另一种解决方法是添加零以强制进行类型转换:如果单元格A1包含“5”,但ISNUMBER(A1)返回FALSE,则如果A1可以为数字,则ISNUMBER(A1 + 0)将返回TRUE。
答案 3 :(得分:0)
我不确定我是否了解您的困境,但至少有两种解决方案可以解决您的问题:
将需要数字的单元格格式化为“数字”而不是文本。您可以突出显示所需的单元格 - >右键单击 - >格式化为数字。您可以从那里设置小数和特定格式的数量。
创建一个新列,将您的文本/数字列乘以1,并将格式设置为此新列的数字。
答案 4 :(得分:0)
就个人而言,如果只有几个数字,我只需在每个单元格上按F2,然后按Enter键,不做任何更改。这使得Excel认为您已经编辑了单元格并将其转换为数字。
答案 5 :(得分:0)
无法使用alpha和numeric的混合列使这些解决方案正常工作,其中数字是从网页复制的文本。 About.com上的贡献者(D. Mabutt)发布了这个VBA代码
Sub Enter_Values()
For Each xCell In Selection
xCell.Value = CDec(xCell.Value)
Next xCell
End Sub
该代码会在alpha单元格上引发错误,因此应添加:
Sub Enter_Values()
For Each xCell In Selection
If IsNumeric(xCell) = True Then
xCell.Value = CDec(xCell.Value)
Else
End If
Next xCell
End Sub
答案 6 :(得分:0)
以下是我找到的解决方案。
我每周运行一份报告,要求复制和粘贴从系统导出的大约7000行数据。最近进行了一些更改,以便将数字存储为文本。数据包括选择的实际文本条目和存储为文本的其余数字。这些数据被复制并粘贴到主模板中,然后提供其他工作表/报告,但我需要将这些数字存储为数字。由于数据的数量以及我不是唯一执行此任务的人(而其他一些人不精通Excel),我需要尝试自动执行此过程。我尝试了= A1 * 1公式,它适用于数字,但文本我得到#VALUE!错误。经过多次摆弄后,我想出了下面的公式,它完美无缺!
= IF(AND(A1 =“是”),“是”,IF(AND(A1 =“不适用”),“不适用”,IF(AND(A1 =“No”),“否” ,A1 * 1)))
答案 7 :(得分:0)
其他答案对我没有帮助,但我发现至少在Excel 2010中(我猜它会在其他版本中类似),你可以使用受影响细胞左上角的小绿色三角形你选择了它们。
它没有告诉你的是,为了让它与多个单元格一起工作,你必须使用包含绿色三角形的单元格开始你的选择。最后一个单元可以是任何单元(最后一个单元可以是任何单元)。如果以非绿色单元格开头,则永远不会出现黄色感叹号。
我在空工作表中创建了一个简单的表格,其中每个单元格都通过 Format >转换为文本。 格式化单元格。然后我输入了下面的值(我在图中标记了包含^
的绿色三角形的行。)
| A | B |
--------------
1 | abc | |
2^| 1 | |
3^| 2 | |
4^| 3 | |
5^| 4 | |
6^| 5,6 | |
7 | 7.8 | |
8^| 9 | |
9 | xyz | |
--------------
现在,您必须在A2或A8中开始选择并将选择拖到其他单元格才能生效。从A9或A1开始不起作用。从中间开始会起作用,但这样你就无法一次性选择所有单元格。
此外,细胞的识别可能取决于您的语言环境 - 对于使用分数而不是逗号的国家/地区,您的结果可能会有所不同(单元格A6与A7)。