Excel实战技巧110:快速整理一列数据拆分成多列(使用公式)
excelperfect
在《Excel实战技巧109:快速整理一列数据拆分成多列》中,我们使用一种巧妙的思路解决了将一列数据拆分成多列的问题。本文介绍使用公式实现的方法。
示例工作簿中的数据如下图1所示。
图1
想把它们转换成如下图2所示。
图2
可以使用下面的公式来实现。在单元格E4中输入数组公式:
=INDEX($A$3:$A$29,ROWS($E$4:E4)+(COUNTA($E$3:$G$3)-1)*(ROWS($E$4:E4)-1)+COLUMNS($E$3:E3)-1)
向右拖至列G,向下拖至行10,使数据全部显示。
公式中:
$A$3:$A$29,是列A中原数据列表。
ROWS($E$4:E4),统计指定区域的行数,区域通过锁定第一个引用并保留第二个引用为相对引用来扩展。当公式向下拉时,行数将增加(1,然后是 2,3,等等……)。
COUNTA($E$3:$G$3),得到单元格区域E3:G3中非空单元格数,本例中是3。
COLUMNS($E$3:E3),统计指定区域的列数。区域通过锁定第一个引用并保留第二个引用为相对引用来扩展。当公式向右拉时,列数将增加(1,然后是 2,3,等等……)。
在单元格E4中,公式被解析为:
=INDEX($A$3:$A$29,1+(3-1)*(1-1)+1-1)
进一步得到:
=INDEX($A$3:$A$29,1+(2)*(0)+0)
得到:
=INDEX($A$3:$A$29,1+(2)*(0)+0)
=INDEX($A$3:$A$29,1)
得到单元格A3中的值:
商品1
你可以照此思路,分析一下单元格E5或者F4中的公式,进一步熟悉这个公式。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。