如果您是WPS用户非要通过函数实现逆透视,您的福利来了!此篇幅有点长,您可以先收藏,有时间慢慢看。
还是昨天微头条的案例,如图1所示:

图1
来看我今天的推导过程:
第1步:=TAKE(A1:G5,,1)

图2
这一步是获取这一区域的列标题,如图2所示。
第2步: =TAKE(A1:G5,1)

图3
这一步是获取这一区域的行标题。如图3所示
第3步:=TAKE(A1:G5,,1)&"-"&TAKE(A1:G5,1)

图4
这一步是把前两步的列标题用文本连接符与“-“连接起来。如图4所示。
第4步:=DROP(TAKE(A1:G5,,1)&"-"&TAKE(A1:G5,1),1,1)

图5
这一步是把第3步得到的结果的第一行与第一列去掉。如图5所示。
第5步:=TEXTJOIN(",",1,DROP(TAKE(A1:G5,,1)&"-"&TAKE(A1:G5,1),1,1))

图6
这一步是把第4步得到的区域合并在一个单元格中,并用" ' "连接起来。
第6步:=DROP(A1:G5,1,1)

图7
这一步获取源数据的数字区域,如图7所示。
第7步:=TOCOL(DROP(A1:G5,1,1),,0)

图8
这一步把上一步得到的数据按列扫描得到一列,如图9所示。
第8步: =HSTACK(TEXTSPLIT(TEXTJOIN(",",1,DROP(TAKE(A1:G5,,1)&"-"&TAKE(A1:G5,1),1,1)),"-",","),TOCOL(DROP(A1:G5,1,1),,0))

图10
第9步:=LAMBDA(X,HSTACK(TEXTSPLIT(TEXTJOIN(",",1,DROP(TAKE(X,,1)&"-"&TAKE(X,1),1,1)),"-",","),TOCOL(DROP(X,1,1),,0)))(A1:G5)

图11

图12
就像如图11所示:用LAMADA函数,把HSTACK(TEXTSPLIT(TEXTJOIN(",",1,DROP(TAKE(X,,1)&"-"&TAKE(X,1),1,1)),"-",","),TOCOL(DROP(X,1,1),,0))共同的参数A1:G5,定义为X。
第10步: =逆透视(X)

图13
这里是今天的大招!
如图13所示,LAMADA函数测试完毕,把=LAMBDA(X,HSTACK(TEXTSPLIT(TEXTJOIN(",",1,DROP(TAKE(X,,1)&"-"&TAKE(X,1),1,1)),"-",","),TOCOL(DROP(X,1,1),,0)))复制到公式-名称管理器-引用位置中,创建一个自定义函数名为“逆透视”。
测试环节,请看动图:

扩大大数据范围测试环节
评论 (0)