云霞资讯网

用公式透视表格,透视表排序如何与源数据保持一致?

数据透视表的排序如何跟源数据保持一致?案例:计算下图 1 中每个人的总获客数,姓名的排序需要跟源数据表的顺序一致。效果如

数据透视表的排序如何跟源数据保持一致?

案例:

计算下图 1 中每个人的总获客数,姓名的排序需要跟源数据表的顺序一致。

效果如下图 2 所示。

解决方案:

如果是透视求和的话,我们用 groupby 或 pivotby 函数都行。

1. 在 D2 单元格中输入以下公式 --> 回车:

=PIVOTBY(A2:A19,,B2:B19,SUM,,0)

公式释义:

A2:A19:行区域

B2:B19:值区域

SUM:要执行的计算

0:不显示总计

透视结果是按中文的拼音顺序自动排序了,并未遵循源数据的顺序。那么我们就需要把公式升级一下。

1. 将公式修改如下:

=DROP(PIVOTBY(HSTACK(MATCH(A2:A19,A2:A19,),A2:A19),,B2:B19,SUM,,0),,1)

公式释义:

MATCH(A2:A19,A2:A19,):在整个区域中依次查找每个姓名,从而得到每个姓名第一次出现的位置所代表的数字;

HSTACK(...,A2:A19):

hstack 函数的作用是按顺序水平追加数组,以返回更大的数组;

语法为 HSTACK(数组1,[数组2],...);

到此为止,相当于给 A 列的每个姓名增加了一列,统计每个姓名第一次出现的位置;

PIVOTBY(...,,B2:B19,SUM,,0):此时再套用 pivotby 函数,就会以 D 列的数值顺序排序了,也就是按源数据表中姓名出现的先后顺序排序;

DROP(...,,1):最后再用 drop 函数去除第一列,得到最终结果;

2. 添加标题,用格式刷复制格式。