前一篇推送讲到了条形图数据系列顺序反转问题
原数据系列的排序只是给大家提示要用智能表格排序
今天交给大家一种更简洁高效的自动排序方式
——复合函数嵌套排序法
虽然函数代码 有点儿小复杂
用到了large、index、match函数嵌套
但是只要理解并记住函数语法
会用就OK了没必要自己学会写
这种方式的最大好处是排序是自动的
即便你修改了原数据区域的数值
图表也会自动执行函数的排序命令
并在图表中呈现新的数据系列排序结果
看下原数据:
本例一共需要四列辅助数据
首先需要添加一列用于后续排序函数引用的序列C列(1~9)
然后需要一列新的数据源(D列)用于区别原数据中的相同值
B4+ROW()/100000
上述函数意思是B4的数据加上所在行数的1/100000
目标是区别不同行的相同数值
因为向下填充函数公式的时候即便遇到相同数据
但是行数不同会造成非常微小的数值差异
F列为根据D列新数据源排序而得到的作图数据
LARGE($D$4:$D$12,C4)
large是降序函数(即由大到小排列)
第一个参数代表需要降序排列的数据源
第二个参数代表在F4中显示第N个降序数据
以上函数大意是指在D列数据中(D4至D12)降序排列
并显示第1个(C1)数据
从F4向下填充函数公式
F4列的数据就是根据D4列降序排列的数据
E列数据是根据新的作图数据F列数据所匹配的数据标签
INDEX($A$4:$A$12,MATCH(F4,$D$4:$D$12,0))
第一个参数代表要匹配的原数据标签区域
第二个参数代表要匹配的数据标签对应的行号
通过嵌套一个match匹配函数来实现
match函数内有三个参数
第一个参数代表要查找的数据
第二个参数代表要查找的数据区域
第三个参数0代表查找类型(本例中是指精确查找)
整个match函数要实现的功能是
精确查找F4单元格数据在D4到D12数据区域的行位置
然后输出行号成为外层index匹配函数要匹配的行参数
整个index函数所代表的意思是
在E4单元格中显示
根据F4数据在D4到D12数据区域的行位置
在A4到A12数据标签区域查找到对应行的数据标签
听起来比较绕
就是针对排序后的F列作图数据
按照最初(A列)的数据标签顺序在E列中重新匹配数据标签
所有的数据整理好之后
利用新的作图数据(E列和F列)
制作条形图
然后反转条形图数据系列顺序(前一篇推送)
最终的图表是这样的