金山WPS

关注公众号 jb51net

关闭
软件教程 > 办公软件 > 金山WPS >

二维转一维表又一新思路! wps中3个tocol+2个if直接搞定

脚本之家

大家好,今天我们用3个tocol函数+2个if函数,超简约思维搞定二维表转一维表。

如下图所示:

A1:E4是学校人员与水果的数量分配表。A列行标题为“姓名”,首行列标题为“水果”名称,“姓名”与“水果”名称交叉位置为分配数量。比如“小明”分配“香蕉”数量为“2个”。该表格为典型的二维表。

我们要将A1:E4表格转换为G1:I8区域的一维表,一列表示“姓名”,一列表示“水果”名称,一列表示“数量”。即每一行确定一组数据。

这是一个超级基础超级典型的二维表转一维表的案例,虽然小编在无数次的文章中都曾经讲解过,但是仍有群友反复咨询。

小编写文章的初衷是为了自我学习,自我提高,温故知新,活到老学到老,所以又总结出了3个tocol+2个if,用超简约思维搞定二维转一维表,我感觉这是所有方法中最简单,最容易理解,最容易记忆的方法。

第一步:确定姓名列

第一个IF函数

输入公式:

=IF(B2:E4<>"",A2:A4,0/0)

因为我们总结出:B2:E4区域内有多少个非空值,就会对应多少个姓名。比如,B2:E4区域内有7个非空值,那么就会以行为单位,出现3个小明,2个小李,2个小红,共计7个姓名。

所以运用IF函数,逻辑是这样的:

B2:E4区域不为空值的时候,返回左侧A2:A4区域对应的姓名,否则返回错误值(0/0),因为除法规则中,除数不能为0,所以0/0=错误值。

第一个TOCOL函数

输入公式:

=TOCOL(IF(B2:E4<>"",A2:A4,0/0),3)

将上一步返回的二维数组姓名区域转换为一列显示。第二参数设置为3,可以忽略空值和错误值后进行转换。第三参数省略,默认行优先顺序转换。

得到的一列就是所有的姓名数据。

第二步:确定水果列

第二个IF函数

输入公式:

=IF(B2:E4<>"",B1:E1,0/0)

因为我们总结出:B2:E4区域内有多少个非空值,就会对应多少个水果。比如,B2:E4区域内有7个非空值,那么就会以列为单位,出现1个香蕉,2个苹果,2个火龙果,2个李子,共计7个水果。

所以运用IF函数,逻辑是这样的:

B2:E4区域不为空值的时候,返回首行B1:E1区域对应的水果,否则返回错误值(0/0),因为除法规则中,除数不能为0,所以0/0=错误值。

第二个TOCOL函数

输入公式:

=TOCOL(IF(B2:E4<>"",B1:E1,0/0),3)

将上一步返回的二维数组水果区域转换为一列显示。第二参数设置为3,可以忽略空值和错误值后进行转换。第三参数省略,默认行优先顺序转换。

得到的一列就是所有的水果数据。

第三步:确定个数列

第三个TOCOL函数

输入公式:

=TOCOL(B2:E4,3)

将B2:E4区域的数量转换为一列显示,第二参数设置为3,可以忽略空值和错误值后进行转换。第三参数省略,默认行优先顺序转换。

得到的一列就是所有的个数数据。

至此全部转换完成了,我们观察:

每行对应的数据与原二维表数据源对应的关系完全一致,说明转换完全正确。

相关推荐:将一维考勤表向二维透视! wps函数pivotby是一个超级透视表函数