大数跨境
0
0

SORT函数排序(4):任意指定项目的动态排序

SORT函数排序(4):任意指定项目的动态排序 Excel数据分析之道
2023-05-29
1

如果要对数据表指定任意几个项目进行排序,如何设计公式呢?

例如,对于下图左侧的表格,要设计一个可以任意安排产品排序次序的模型,单元格K2至P2选择排序产品(产品的排序次序也就是从左往右),都是降序排序。

我们可以使用MATCH函数定位出各个产品的位置,并将其结果(是一个位置数字组成的数组)作为SORT函数的第2个参数,MATCH函数使用如下:

MATCH($K$2:$P$2,$B$4:$H$4,0)

那么,就可以设计如下的排序公式了:

=SORT($B$5:$H$19,
MATCH($K$2:$P$2,$B$4:$H$4,0),

{-1,-1,-1,-1,-1,-1})

这样,我们就可以在单元格K2至P2任意选择产品,就按照指定产品的排序次序进行了排序,如上图和下图:

进一步思考,如果在单元格K2至P2任意选择产品设置产品的排序条件次序,在排序结构表中,也能自动调整各个产品的先后次序呢?答案是肯定的,使用INDEX函数和MATCH函数从SORT函数结果中分别提取各个产品即可,结果如下图所示。

这里,排序表中的标题设置为下拉菜单,以便于选择并设置它们的排序次序。

单元格J5公式如下,提取排序后客户名称:

=INDEX(
SORT($B$5:$H$19,MATCH($K$4:$P$4,$B$4:$H$4,0),{-1,-1,-1,-1,-1,-1}),
ROW(A1),
1)

单元格K5公式如下,往右往下复制,即可得到各个产品的排序后的数据:
=INDEX(
SORT($B$5:$H$19,MATCH($K$4:$P$4,$B$4:$H$4,0),{-1,-1,-1,-1,-1,-1}),
ROW(A1),
MATCH(K$4,$B$4:$H$4,0))


也就是说,SORT函数的是2个参数和第3个参数,既可以是构建的常量数组,也可以是引用工作表的区域(因为工作表区域就是数组)。

------------------------------

关注公众号,回复“SORT函数多条件排序”,获取免费素材。

------------------------------

【声明】内容源于网络
0
0
Excel数据分析之道
全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
内容 1106
粉丝 0
Excel数据分析之道 全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
总阅读54
粉丝0
内容1.1k