2022-11
19

PQ显身手

By xrspook @ 10:11:43 归类于: 烂日记

我也说不准什么时候问题会向我袭来,比如周五的上午,我正在做着普通的事情,突然就被一个同事叫去了,问我某个关于固定资产的Excel文件到底是什么情况。在我印象之中,我折腾过那个东西,但是具体做了什么,我还真想不起来,因为那是一个非常定制的效果,所以我在那里做了什么我实在不知道,因为完全是根据需求去做某些设定的。明细数据一看就知道肯定就是一开始的表格,但除了那个表格以外,后面的东西是手动输入的还是关联的,我就真不记得了。用的人说那个是关联的,但实际上又好像看不出什么苗头。其中一个肯定是自动生成的,因为那是数据透视表,数据透视表之后,有一个打印的表格。那个东西到底是干什么用的呢?打印的表格里又分了两个超级表。后来在折腾另外一个表格部分数据透视列的时候,我才想起打印的那个表格当年是我用Power Query设定过的。跟数据透视表比起来,那个东西更适合用来做列表类的东西,因为原始数据的编号是空值,所以如果有某两条记录完全一致,数据透视表估计就会把他们组合起来。所以当年我就想出了一个用其中一个超级表作为条件录入另外的那个大表作为数据筛选。这样的好处是除了明细表格以外,其它表格的数据都是查询生成的,虽然他们的表达形式不一样,甚至可以说是定制式的。

至于后来盘点账之类的东西,实际上就是实物账的某一列要进行透视拆分。他们当时根本就没想过可以怎么实现这个功能。无论是之前的使用者还是现在的接收者,都搞不懂实物账跟盘点账有什么不一样。如果只是要把一列透视,自我感觉应该是很简单的,因为以前我就经常用PQ比做这种事,但现在用起来又好像不是我想象中的那样。结果发现之所以这样,是因为以前我用的那些通常都要对数据进行合并。无论是求和类的还是计数类的,通常以求和类的居多,现在用的是不聚合的功能。最终我想出增加一列。然后以那一列不聚合符号作为透视列的依据,然后我再把那些空的单元格全部用空白填充。这样的话就做到了原始数据在一列里有三个分类,目标数据把那个分类分成了三列,最后的效果要在三列对应的单元格上打上勾。效果就是原始数据某一列全部都有三个分类的其中一个,目标数据每一条数据对应的某个分类都有一个勾。说很容易,做我感觉也是很容易的。要实现这个功能,会有一点点绕。用人的思路考虑就是把一个一维表变成一个二维表,实际上也正是在干这种事情,但因为三个分类的对应单元格显示的不是某个数字,而是某个符号。一般的数据透视表不可能实现,经过一些高级设定后Power Pivot可以实现。如果你要用数据透视表表达课程表,一般的数据透视表是无法实现的,因为数据区域是一个标量,只能是数字,不可能是文字,但是在PP跟PQ可以做到。

我的同事的那种烦恼,在我们的这个单位,大概也就只有我能解答了。也不是说我们这个单位的人的能力不行,但是我估计他们不会在Excel的这两个隐藏高级技能上曾经狠下苦功。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress