霍华德有一个数字列表,有时是6位数字,有时是8位数字,但是长度是无关紧要的,因为他需要按后2位数字然后按前2位数字进行排序。他尝试使用右/中/左类型的公式,但由于位数不一,因此无法使用。

在讨论方法之前,重要的是对霍华德的数据做出一些明确的假设。在本技巧中,我将假设数据在A列中,并且至少由4位数字组成。 (霍华德提到6位数和8位数的长度,因此这不应该是一个错误的假设。)还假设A列中唯一的东西是由数字组成的值-它不包含您要忽略的其他字符在您的排序中。

如果要使用两个帮助器列来提取排序数字,则可以在B列中使用以下内容:

=RIGHT(A1,2)

该公式从A列中的任何内容中获取最右边的两位数字。然后,可以在C列中放置以下内容:

=MID(A1, LEN(A1)-3,2)

该公式查看A1中任何数字的长度,并将该值用作MID函数的参数,以提取该值中最后两位数字之前的两位数字。

重要的是要认识到,无论A列中的值是数字还是文本,这些公式都将返回文本值。当任何一个提取值以0开头时,这都很方便;这表示您将看到的是“ 05”或“ 00”而不是“ 0”,而不是返回“ 5”。如果要确保返回数值,则需要将每个公式包装在VALUE函数中:

=VALUE(RIGHT(A1,2))

=VALUE(MID(A1, LEN(A1)-3,2))

使用B和C列中的“键值”,然后可以根据这些值执行排序。如果需要,您也可以在B列中仅使用一个具有以下公式之一的帮助列:

=RIGHT(A1,2)&MID(A1, LEN(A1)-3,2)

=RIGHT(A1,2)&LEFT(RIGHT(A1,4),2)

同样,这些返回文本字符串(对于排序来说是很好的),但是您可以通过将它们包装在VALUE函数中来将它们转换为数值:

=VALUE(RIGHT(A1,2)&MID(A1, LEN(A1)-3,2))

=VALUE(RIGHT(A1,2)&LEFT(RIGHT(A1,4),2))

无论您使用的是提取的文本还是B列中的数值,现在都可以基于列的内容进行排序。

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

本技巧(10905)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。