按可变长度数据中的最后一位排序(Microsoft Excel)
霍华德有一个数字列表,有时是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。