最天完成前3天的答案公布,今天继续剩下2道题目。
第4题:多单条件汇总要求:在填充颜色区域录入公式,汇总1#和2#的当日排程数量
难点:汇总的数据是一个二维数据,不是标准的一维数据,而填充黄颜色区域对应的是1月1日到1月10日的排程,需要汇总对应1号线和2号线的数量。相当于有两个条件,一个条件是线体,一个条件是日期。
实际的运用只需要用到绝对引用和相对引用的技巧,通过向右填充公式即可。
答案:
录入公式:
=SUMIFS(E5:E17,$B$5:$B$17,$D$2:$D$3)
向右填充后,就可以得到下图1的答案。
技巧:
这里用了三个技巧:
技巧1:相对引用求和区域,也就是1月1日排程这个区域,当公式向右填充的时候,就自动填充到右边日期上,如1月2日这个区域,以此类推。
技巧2:条件区域线体使用的是绝对引用,这样向右填充区域就不会变动位置了。绝对引用就有两美元符号分别在列和行号左边。
技巧3:条件这里用的动态数组写法,一次引用两个条件并且绝对锁定。$D$2:$D$3对应的是1#和2#。
图 1
第5题:工序转换要求:在填充颜色区域录入公式,用一个公式把上面的二维数据转换成一维数据,有新的图号增加的时候,能够自动扩展。题目如下图2所示
难点:二维数据转一维数据,转换过程中不能使用辅助列,还需要用一个公式解决,并且支持新数据自动推展。
图 2
答案:
录入公式:
=LET(A,HSTACK(TOCOL(B3:B1000&EXPAND("",,6,""),3),TOCOL(OFFSET(B2,1,1,ROWS(TOCOL(B3:B1000,3)),6))),FILTER(A,CHOOSECOLS(A,2)<>""))
一键填充,得到下图3的结果。
图 3
技巧:
用了多个技巧来实现一键自动扩展填充;
技巧1:TOCOL 配合参数3屏蔽空值实现自动推展。参考公式:TOCOL(B3:B1000,3),到B1000的单元格范围内实现自动扩展,也就是图号新加信息的时候,也自动转成一维数据。
技巧2:EXPAND扩展6个空值,转一维的过程中为配合TOCOL函数转一维的维度,需要连接6个水平方向的空值,来实现图号与工序的维度一致,利用公式EXPAND("",,6,""),快速得到空值,并与TOCOL连接。
技巧3:OFFSET偏移,利用ROWS判断高度(10),和固定宽度6,实现工序明细数据的显示。公式:=OFFSET(B2,1,1,ROWS(TOCOL(B3:B1000,3)),6)
图 4
技巧4:利用HSTACK函数把两列数据并在一起形成一个新的数组。公式:
HSTACK(TOCOL(B3:B1000&EXPAND("",,6,""),3),TOCOL(OFFSET(B2,1,1,ROWS(TOCOL(B3:B1000,3)),6)))
如下图5所示:
图 5
技巧6:定义名称A,配合筛选函数去除空值,上面的数据包含空值,把上面的结果定义为A,配合筛选函数录入:
=FILTER(A,CHOOSECOLS(A,2)<>"")
最终得到下图结果:
最后总结:Wps 更新动态数组公式后,可以改变思路。以前如果增加了数据,而公式没有填充的话需要继续手动填充。在有动态数组的基础上,提前把需要更新数据的单元格范围引用写到动态数组公式上面,这样就不会因为数据有增加而继续需要手动填充公式了。
这样就减少了工作量,间接也提高了工作效率。