WPS表格 IFERROR+TOCOL+EXPAND+SEQUENCE函数嵌套批量插入空行的应用案例

丁功令

创作者俱乐部成员

场景:使用TOCOL函数将多行多列转一列。

具体要求:在原始数据为数值的相邻单元格之间批量插入两个空行,如给定的标准所示,截图如下:

步骤1:先打开WPS软件,新建一份表格,并输入相应的内容。如下图所示:我们来实际操作一下,帮助大家理解这几个函数。

步骤2:在C2单元格输入公式,如下所示:

=TOCOL(IF({1,0,0},A2:A11,""))

然后按ENTER键,即可得到所要的结果。

步骤3:在D2单元格输入公式,如下所示:

=IFERROR(TOCOL(EXPAND(SEQUENCE(10),,3,x)),"")

然后按ENTER键,即可得到所要的结果。

函数语法:

IFERROR(value, value_if_error)

IFERROR 函数语法具有下列参数:

■ 取值:必需,检查是否存在错误的参数。

■ value_if_error:必需,公式计算错误时返回的值。

计算以下错误类型: #N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或 #NULL!。

说明

■ 如果 value 或 value_if_error 是空单元格, 则 IFERROR 将其视为空字符串值 ()。

■ 如果 value 是数组公式, 则 IFERROR 返回值中指定的区域中每个单元格的结果数组。

函数语法:

Sequence函数可以生成一系列的连续数字或多行多列的等差数列。

Sequence函数由行数、列数、开始数、增量4个参数组成。

函数语法:

EXPAND函数将数组扩展到指定的维度。

函数语法:

TOCOL函数将二维数组转化为一列。

以上就是今天要分享的内容,欢迎大家评论区留言,谢谢!!!!!!!!!

四川省
浏览 181
收藏
5
分享
5 +1
14
+1
全部评论 14
 
还有一个问题,当我使用IFERROR+TOCOL+EXPAND+SEQUENCE 完成的时候 不写EXPAND里的参数填充值x 它是返回0的。写x我能理解,返回0的情况 我认为是我不填这个参数 他就按照它创建的数组的数据类型 比如这个是数值类型 我就给它个0
· 广东省
1
回复
丁功令

创作者俱乐部成员

您好,此处的【填充值】省略,(默认用0填充)
· 四川省
回复
 
请教一下丁老师,=IF({1,0,0},A2:A11,"")的结果为什么是一个三列十行的多维数组呢,难道这一个公式产生了笛卡尔积吗?3*10=30 我能这么理解吗
· 广东省
1
回复
丁功令

创作者俱乐部成员

感谢老师的关注 {1,0,0}(数组常量,表示3个逻辑判断条件:1(TRUE)、0(FALSE)、0(FALSE)) A2:A11(当逻辑条件为TRUE时返回的区域值) ""(当逻辑条件为FALSE时返回空字符串) 整个过程是数组扩展,不是笛卡尔积式的“所有可能组合”。 笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。
· 四川省
回复
 
学习
· 中国
1
回复
丁功令

创作者俱乐部成员

· 四川省
回复
 
黑化新路

WPS函数专家

expand+tocol丁老师写了, 我写下另外的, 1.=IFERROR(ROW(3:30)/3/(MOD(ROW(3:30),3)=0),"") 2.=MAKEARRAY(30,1,LAMBDA(x,y,IF(MOD(x-1,3)=0,(x+2)/3,""))) 3.=REDUCE(,ROW(1:10),LAMBDA(x,y,VSTACK(x,"","",y)))
· 重庆
1
回复
丁功令

创作者俱乐部成员

感谢新路老师的关注和解答,把好的知识分享给大家,加油
· 四川省
回复
 
👍👍👍👍👍👍👏
· 河南省
1
回复
丁功令

创作者俱乐部成员

· 四川省
回复
 
学习
· 广东省
1
回复
丁功令

创作者俱乐部成员

· 四川省
回复