在某个**中,源数据分布在不同列的不同单元格中,现在需要快速将分布在不同列中的这些不同单元格的数据内容汇总到一列中。
仿真转换数据的结果如下图1所示
图 1 如果 WPS 不更新新函数 TOCOL,这个要求仍然很复杂,但有了这个函数,它就变得非常简单,因为 TOCOL 是一个专用函数,可以将不同列和区域中的数据(单元格)转换为列。
但是,这里的要求也需要用二次函数嵌套,不包含“d”的单元格数据被单独过滤掉并转换为列。
所以,最后一个想法是先“把它变成一列”,然后过滤掉不包含“d”的数据。
首先将源数据转换为一列,同时将其转换为一列,注意 tocol 函数的第二个参数选择 3,其中参数 3 代表忽略空单元格和错误值,如果选择比较大的范围,如果包含空单元格,则不会显示。
输入公式:b6=tocol(b2:i4,3)。
功能定义:将 b3:i4 的所有区域转换为一列,忽略空单元格和错误值;
效果如下图 2 所示
图 2 将所有数据都放在一列中,因此您需要筛选不包含 d 的数据。
输入函数:filter(tocol(b2:i4,1), tocol(b2:i4,1)<>"d")
功能定义:筛选出该列中不包含d的数据。
这样,经过筛选,就达到了原来要求的结果。
效果如下图 3 所示
图 3:学习函数的最好方法是用不同的函数从不同的角度解决问题。 在这里,我们改变思路,使用 if 函数来实现这个要求。
输入功能; tocol(if(len(b2:i4)>1,b2:i4,a),3)
函数解释:如果 b2:i4 区域中的单元格字符大于 (len 判断) 1 个字符,则返回 b2:i4,因此返回需要合并的数据,否则返回 a,这里返回 a 的目的是返回错误的值。
返回错误值后,与tocol合并时,使用参数3过滤错误,使大于1个字符的数据合并为一列。
效果如下图 4 所示
上面图 4 中的例子展示了 tocol 函数的巧妙运用,即多区域、多单元格快速转换为一列,一般情况下,转换为一列后,会有数据需要过滤两次。
这时,你可以使用filter函数来过滤指定的条件,或者使用len来确定字符的长度,并使用if进行过滤。
如果在函数中使用单个函数,可能只能达到一定的要求,嵌套不同的函数后可以发挥更强大的功能。
跟顾哥学PMC生产规划运营就够了吗?
关注 Gugo 项目