二维转一维表又一新思路! 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,可以忽略空值和错误值后进行转换。第三参数省略,默认行优先顺序转换。
得到的一列就是所有的个数数据。
至此全部转换完成了,我们观察:
每行对应的数据与原二维表数据源对应的关系完全一致,说明转换完全正确。