动态数组:一文讲透数组转换新函数TOCOL TOROW WRAPROWS WRAPCOLS(下)

清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

困难如山,我有金山。

欢迎收看本期动态数组专题,一起聊聊WPS最新16120版本更新函数:TOCOL TOROW WRAPROWS WRAPCOLS。

教程(上)链接:

https://home.wps.cn/topic/14641?chan=share&fromshare=copylink

我们来看数组转换函数的5个案例:

【案例一-考场 】

题目要求:将学生姓名按名次排名填入考场,每个考场最多安排7位考生,每个考场安排满后开始安排下一考场。

一下子新学4个函数,容易手忙脚乱(过于兴奋),首先需要确定用哪个函数,然后再确定具体的参数。同时,需要注意的是,本例考场的安排,需要从列方向进行扫描。

一般这种“不知道是否能整除”的情况,第三参数都应以空值来进行填充。

【案例二-考场调整】

题目要求:将原有5个考场压缩至4个考场,每个考场的桌子数量由7张增加为8张。

本例即是两组函数都要用到的一个往返过程,整体思路很好理解。

本例容易出错的地方在于一些小细节,比如原数组的空单元格、转变为向量时的扫描方向等等,很可能出现错误,用户需要根据出错的可能结果去进行调试、找到问题原因加以修缮。

【案例三-座位安排】

题目要求:将学生姓名按名次排座,要求一男生一女生同桌,每行排满后开启下一行。

这道题稍微有些复杂,大致思路是:可以将男生和女生分开来进行“WRAP”,需要借助FILTER的过滤功能;同时,利用前面一期学弟的教程HSTACK函数,将两个函数拼接成一个横向大数组(否则不能排序);最后,使用SORTBY函数结合辅助行进行排序。

分步骤的效果如图所示:

【案例四-考场分配】

题目要求:根据不同的考场数,将考生姓名按照名次降序分配至不同考场内。(假定最少安排2个考场,最多可以安排8个考场)

这个案例中,除了数组转换函数的使用以外,还涉及了微调项窗体、自定义单元格格式的使用,整体用起来非常便捷,为几千名考生安排考场时的效果会非常壮观

【案例五-规范制表】

菁培班导师邓华老师多次强调,规范制表的重要性。学弟带领大家再来复习一下:

标准三表结构:

1个源数据表、1个参数表、N个汇总表

而且,源数据表一定要单维!

好多用户愿意使用多维的源数据表,其实是不规范的,需要我们将它改成单维。

这个案例同时也是动态数组系列函数的一个小综合应用。

可以以此为契机复习一下文本拼接函数。

姓名列、科目列和成绩列的写法均有不同,需要注意细节。


其实整体来说,数组转换的4个新函数难度不是很大。大家都学会了吗?

最后是今天教程的文档链接:(上、下集教程的文档是同一个,大家下载一份即可)

【金山文档】 一文讲透数组转换新函数

https://kdocs.cn/l/cmfmzY5oG67o

附录:

欢迎大家阅读我的其他文章:

【功能推荐】系列

一文讲透表格保护

一文讲透文档管理

一文讲透表格筛选(上)

一文讲透表格筛选(下)

一文讲透社区封面头图设计

【函数攻略】系列

一文讲透WPS表格函数二分法(上)

一文讲透WPS表格函数二分法(下)

一文讲透WPS表格逻辑值(上)

一文讲透WPS表格逻辑值(下)

一文讲透WPS表格文本拼接(上)

一文讲透WPS表格文本拼接(下)

一文讲透条件判断函数家族

一文讲透单元格格式(上)

一文讲透单元格格式(中)

一文讲透单元格格式(下)

一文讲透TEXT函数家族新成员(上)

一文讲透TEXT函数家族新成员(下)

一文讲透新版本函数VSTACK(HSTACK)

【动态数组灰度测试】系列

动态数组行业案例:使用SEQUENCE/FILTER函数 × 动态数组 搞定三大高频场景

动态数组行业案例:使用SORTBY函数 × 动态数组 制作多功能成绩单

动态数组行业案例:使用UNIQUE函数 × 动态数组 多场景全能应用

动态数组行业案例:使用SEQUENCE函数 × 动态数组 生成动态序号

动态数组行业案例:使用XLOOKUP函数 × 动态数组 实现金牌查找(上)

动态数组行业案例:使用XLOOKUP函数 × 动态数组 实现金牌查找(下)

动态数组行业案例:使用RANDARRAY函数 × 动态数组 解决授课案例问题

动态数组行业案例:使用INDIRECT函数 × 动态数组制作二级下拉菜单

动态数组行业案例:使用TEXTJOIN函数 × 动态数组将字符串中的数字和汉字分开

【WPS AI办公】系列

教你一句话找到本次成绩的班级前三名的同学

教你一句话规范身份证号和手机号填写

WPS AI版本体验测评(表格篇)

【表格菁培班-函高PK赛】系列

(PK王禹成)制作倒班神器

(PK王禹成)计算特定字符出现的次数

(PK王龙奇)给公式加注释

(PK王龙奇)排序功能平替,等你来设计!

(PK蒋春阳)兄弟们,抽奖啦~!

(PK蒋春阳)标记正确选项

(PK贺菊中)快来绘制你的专属圣诞树啪

(PK贺菊中)查找字符串中第X次出现的某字符

【赛事活动】系列

【菁培班毕业季】砥砺前行 扬帆起航!

【制造业行业三等奖案例】职工一家人都能用的倒班神器!

【教育行业一等奖案例】教你一句话找到本次成绩的班级前三名的同学!

【金山35周年 旧金山特别奖征文】回望金山速度 · 共振人生梦想

【KCT认证】梦想金山,生生不息——民航小哥的KCT认证备战日记

【我和WPS那些事儿】生生不息,再造未来——一位打工人读者的思考

中国
浏览 2329
1
10
分享
10 +1
10
1 +1
全部评论 10
 
任泽岩
感谢大家的支持!
· 辽宁省
回复
 
卡斯摩
案例4生成考场时,我看任老师用的是大括号生成横向序列F5={sequence(1,i2)},这样的问题就是上面的考场数动态调整后,第五行考场数量不会变化。我在跟着练习时,把这个改成了:F5=torow(sequence(1,i2)) 案例3中用来做辅助排序的行,我在想这个是否有办法把辅助行直接写到公式里去呢,头痛中。求老师们解码。
· 广东省
回复
 
卡斯摩
任老师,案例5是不是可以用tocol生成笛卡尔积的方式,再用hstack拼接一下,更加直接.如下: =VSTACK({"姓名","科目","成绩"},HSTACK(TOCOL(B3:B12&C1:F1),TOCOL(C2:F2&A3:A12),TOCOL(C3:F12))) 如果用了let后,又变得更加清爽易读了: =LET( 表头,{"姓名","科目","成绩"}, 姓名,TOCOL(B3:B12&C1:F1), 科目,TOCOL(C2:F2&A3:A12), 成绩,TOCOL(C2:F12), VSTACK(表头,HSTACK(姓名,科目,成绩)))
· 广东省
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

案例:冬至快乐:https://home.wps.cn/topic/15042/#comment?chan=share&fromshare=copylink(作者:会飞的鱼)
· 辽宁省
1
回复
 
张俊
张俊

WPS函数专家

泽岩师兄,案例5是二维转一维吗?链接打不开了
· 上海
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

现在再试一试
· 辽宁省
2
回复
 
Mr Chen
Mr Chen

创作者俱乐部成员

学习学习
· 甘肃省
1
回复
 
人在地球心存宇宙
学弟表示看不懂
· 广东省
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

哪里没看懂?
· 辽宁省
回复