Excel列转行,80%的人不知道这个方法!

发布时间:2019-12-21 来源:网络


在工作中,我们一般是用“列表”进行统计和分析,但有些时候,你做好了“列表”,领导又临时让你变成“行表”。如图1所示。


 (图1


对于数量少的,当然可以复制→选择性粘贴→置换功能就可以解决,当数量达到一定程度,如果A列有1000个片区呢,这时候单单用复制和粘贴是很难解决问题的。


解决这个问题,我们得用INDEX函数,INDEX函数语法以前已经说过了,不在此进行进一步说明,不太懂的可以百度或者谷歌。


好,现在我们一起来解决如何将“列表”变成“行表”:


1、将A1:A10单元格区域复制到D1:D10单元格区域→选择【数据】选项卡中的“删除重复项”→得到不重复片区的名单。如图2所示。


 (图2


2、E1单元格输入如下数组公式(输入公式后需按Ctrl+Shift+Enter组合键):


=INDEX($B$1:$B$10,SMALL(IF($A$1:$A$10=$D1,ROW($A$1:$A$10),1000),COLUMN(A1)))


然后向右和向下填充如图3所示。


 (图3

 

【公式解析】


这个公示理解的关键点在IF和SMALL的组合函数:


SMALL(IF($A$1:$A$10=$D1,ROW($A$1:$A$10),1000)


1、通过IF函数分别划分出三个社区,比如说合江社区,如果在A1:A10中不是合江社区的就返回FALSE,即1000,如果是就返回TRUE,即ROW($A$1:$A$10),本身的序号;


2、用SMALL函数将通过IF函数得到的数列按照升序排列,分别选取第1、2、3个数(以合江社区为例),即所在单元格所在的行号;


3、用INDEX函数在B1:B10单元格区域进行选取。


如果不是很清楚,我们也可以用【公式求值】来进一步增加理解。如图4所示。


 (图4


4、再将错误值去掉就可以得到“行表”的效果。


 (图5