克里斯(Kris)在一家航空工厂工作,在那里他们为许多公司生产燃气涡轮发动机零件。每个公司都有自己唯一的部件号。有些都是数字,但大多数是数字和长度不同的字母的组合。按零件号排序时,Kris希望将列视为文本,以便按需要进行排序。他尝试将单元格设置为文本格式,但这并不总是有帮助。另外,他也不喜欢在每个单元格中都输入撇号的想法。 Kris想知道是否有一种简单的方法可以使Excel将所有零件号排序为文本。

克里斯(Kris)问题最有说服力的部分可能是他试图将单元格设置为文本格式的说法,但这并不总是奏效。有一种技巧可以将单元格设置为文本格式,您必须在将信息输入单元格之前执行此操作。如果您尝试将包含数字的单元格设置为文本格式,则不会将数字更改为文本。但是,如果在输入数字之前将单元格格式化为文本,则在输入数字时将其视为文本。

解决方案是在将单元格设置为文本格式后,重新输入所有数字。当然,当您要处理成百上千的零件编号时,这可能是一件大事。相反,您可以尝试以下常规步骤,其中我假设零件编号在A列中:

。在零件编号的右边插入一列。 (此新列现在为B列。)

。将B列设置为文本格式。

。选择列A,然后按Ctrl + C。这会将零件号复制到剪贴板。

。选择单元格B1。

。使用“选择性粘贴”仅将值粘贴到新列。

完成这些步骤后,B列中的所有内容都应视为文本,并且可以删除A列。现在,您应该能够按零件号排序并获得所需的结果。

当然,这是有问题的。如果将来要大量复制和粘贴零件号,则可能所有零件号可能不再被视为文本。发生这种情况的原因是,如果您使用传统的Ctrl + C和Ctrl + V进行复制和粘贴,Excel也会将格式粘贴到单元格中。因此,如果粘贴的零件号先前已格式化为数字,则粘贴后将被视为数字。

在这种情况下,如果需要,您可以使用宏来确保零件号始终设置为文本格式。以下是一个简短的将非常有用的方法:

Sub MakeText()

Dim c As Range

Selection.NumberFormat = "@"

For Each c In Selection         c.Value = c.Value     Next c End Sub

宏背后的想法是,您将选择所有零件编号,然后运行它。选择的格式设置为文本,然后“重新输入”选择中的每个单元格,以便随后将数值视为文本。

如果您不反对使用辅助列,并且不想使用宏,则可以尝试创建一个包含与零件号文本等效的宏。可以使用以下任何公式来完成此操作:

=A1 & ""

=CONCATENATE(A1)

=TEXT(A1, "@")

将公式复制到所需的尽可能多的单元格。这些公式强制将帮助程序列的内容视为文本。然后,您可以根据帮助器列的内容对零件编号进行排序。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(4627)适用于Microsoft Excel 2007、2010、2013和2016。