我有一张邮政编码表,其中包含发送到每个邮政编码的货件数量。 我想按特定顺序按邮政编码对这个数组进行排序,我将其放在第二个列表中。 我不想按客户数量或邮政编码的数字顺序排序,而是按这个专门排名的列表排序。 我无法使用自定义排序功能,因为我的列表对于此功能来说太长了。
我有 Office 2016,但是对于此任务,我一直在尝试基于 Web Office 365 使用排序功能
我尝试过使用 SORT 和 SORTBY,但是无论我如何格式化它们,我都会得到#VALUE!错误。 我尝试了以下公式,但它抛出了#VALUE!
=SORTBY(A2:B944, D2:E2639)
遇到的问题是
SORTBY
函数希望按
相同的行数
来对的范围进行排序。在的公式中,尝试按 2638 行(
D2:E2639
)对 943 行(
A2:B944
)进行排序,从而导致错误。
为了解决这个问题,需要创建一个“辅助列”,其中包含基于的自定义顺序的每个邮政编码的“排名”。
以下是步骤:
-
创建辅助列:
在
F 列
中,我们将使用
MATCH
函数来查找每个邮政编码在的自定义列表中的位置。在单元格 F2 中,输入以下公式并向下拖动到 F 列的末尾:
excel
=MATCH(A2,$D$2:$D$2639,0)
此公式查找 A2 中的邮政编码在 D 列中的位置,并返回其在列表中的位置。
-
按辅助列排序:
现在,可以使用
SORTBY
函数根据辅助列对数据进行排序。在单元格 G2 中,输入以下公式并向下拖动:
excel
=SORTBY(A2:B944,F2:F944,1)
此公式按升序对 A2:B944 范围进行排序,方法是根据 F2:F944 中的相应值进行排序。
现在,应该在 G 列和 H 列中获得按自定义邮政编码顺序排序的数据。
注意:
-
$
符号用于锁定引用,以便在向下拖动公式时,它们不会改变。 -
如果的自定义邮政编码列表中存在重复项,则
MATCH
函数将仅返回第一次出现的索引。
希望这可以帮助到!
标签:excel,sorting,excel-formula From: 78767793