金山WPS

关注公众号 jb51net

关闭
软件教程 > 办公软件 > 金山WPS >

WPS函数VSTACK和HSTACK怎么用 wps实现表格的一键变形转换的技巧

脚本之家

某工厂的PMC接到销售要求,原来每天需要出6个货柜的计划现在变更成每天出3个货柜,这3个货柜不是直接减少,而是把原计划中的4号货柜到6号货柜自动换行到货柜1号到3号的下方,日期累加。希望设计一个函数公式,实现表格的一键变形转换。效果如下图1所示:

图 1

需求分析

分析一下这个需求,从源数据中观察,可以发现这是一个对等的数据区域,也就是把货柜1到货柜6从中间分开,并累加。累加好的同时还需要按日期排序,这样就实现了上述问题的表格变形转换。

根据这个需求立即想到WPS更新的新函数VSTACK和HSTACK,用这两个函数可以实现数组重新堆叠,完成后再用排序函数SORT对日期排序就可以了。

货柜垂直合并

货柜1号到3号前面是有日期的,而货柜3号到6号前面是没有日期的,如果直接垂直合并就会导致没有日期,从而无法进行按日期排序,所以合并前录入水平合并函数HSTACK:

录入公式:

=HSTACK(B3:B10,F3:H10)

公式释义:

把两个区域进行合并(水平方向)

效果如下图2所示:

图 2

水平方向合并完成后,就需要垂直方向合并了,这次的合并函数是VSTACK:

录入公式:

=VSTACK(B3:E10,HSTACK(B3:B10,F3:H10))

公式释义:

把两个区域进行合并(垂直方向)

效果如下图3所示:

图 3

按日期排序

通过上面的两次区域合并,还不能算成功,还需要要进行排序,排序的目的是把同一天的日期连在一起,这样就实现了源数据中一天出6个货柜的一行,变成一天出3个货柜的二行。

录入函数:

=SORT(VSTACK(B3:E10,HSTACK(B3:B10,F3:H10)))

函数释义:

SORT函数如果不录入第二参数,代表默认排序的数据为第一列(日期),排序的方式为升序(从小到大)。这里用的是直接法,相当于把日期进行升序排序,这样因为日期大小的原因,排序完成后就实现日期相同的在一起了。

效果如下图4所示:

加上标题

如果标题选择的手工录入的话,到上一步已经完成了表格转换变形的需求了,这里为了让大家更加好理解VSTAKC和HSTACK,继续在嵌套一层标题。

录入函数:

=VSTACK(B2:E2,SORT(VSTACK(B3:E10,HSTACK(B3:B10,F3:H10))))

函数释义:

把B2:E2,也就是源表中的标题按垂直方向合并到排序后的结果中。

效果如下图5所示:

最后总结

VSTAKC和HSTACK这两个函数的应运场景非常多,最为常见的就是区域重组,可以进行任意方向的合并,如上面的案例中的水平合并,垂直合并。

合并不仅仅是区域,有时候不想在不同的单元格录入多个函数,可以用这两个函数进行函数合并,从而实现一个“大”的公式,这样的效果就是表格函数建模中的“一键转换”,也就是一个公式搞定需求。后续有需求变化的时候,只需要在这个公式中变更就可以了。

以上就是VSTACK和HSTACK公式的用法,希望大家喜欢,请继续关注脚本之家。

相关推荐:

公式编辑栏不见了如何显示出来 解决WPS表格中公式编辑栏消失的妙招

WPS如何开通AI功能 wpsai功能的使用教程