编按:网络数据整理一直是个难题。导出的网络数据要么是单列的,要么是有一些特殊符号,都需要整理后才能使用。譬如如何把单列数据按属性变成多列数据? Excel新人、老手各有自己的一套方法,从匪夷所思的查找替换到一个公式横推所有数据都让人大开眼界。
现在很多公司都在网上处理业务,由此会有很多从网络上导出或者直接从网页上复制粘贴得到的数据,例如下图:
A列是网络上导出的原始数据,现需要整理成C、D、E列的形式。为了便于理解,这里用颜色对前三组数据进行了标注。
需求我想大家都看明白了,对于这个问题该如何快速的处理,就是我们今天要分享的内容。下面是三个不同用户,新手、熟手、老手分别提出的方案。
一、新手的方案:
不管是什么程度的用户,要想高效使用Excel解决问题,善于找发现规律都是必须具备的能力!
就本例来说,规律算是比较明显的,如图所示:
只要能理解这个规律,即便是不懂公式函数的新手,也能很快解决这个问题,不信看动画演示:
动画中的操作非常简单,就是利用查找替换实现了有规律地引用数据。作为Excel新手,能想到这种方法,真的是妙!但是该法也有一些不足,替换以后的公式不能下拉,数据源增加了还得重新操作一次。
虽然这个方法要比手动复制粘贴方便了很多,但对于那些有了一定经验的用户来说,还是显得有些麻烦,因此我们继续介绍第二个方法。
二、熟手的方案:
使用三个公式,就可以将A列的数据按要求提取到对应的列中。第一个公式:=INDEX(A:A,ROW(A1)*6-5)
公式解析:
INDEX(数据区域,数据所在的行),按指定行从指定区域中提取数据。要提取的是交易类型,其数据分别位于A列的1、7、13等行,使用ROW(A1)*6-5可以得到对应的行号。把ROW(A1)*6-5作为INDEX函数的第2参数就有了第一个公式。
按照这个思路,第二条公式为:=INDEX(A:A,ROW(A1)*6-3)
ROW(A1)*6-3这部分可以得到3、9、15……这些行。
第三条公式为:=INDEX(A:A,ROW(A1)*6-1)
原理都是一样的,不再赘述。
该方案对比第一个使用查找替换的方案,效率有了进一步的提升,公式也很好理解,适合绝大多数用户。但是对于更高级别的用户来说,用三个公式太麻烦,他们追求的是一步到位,使用一个公式得到三列数据。
三、老手方案:
答案是肯定的,请看截图:
公式为:
=INDEX($A:$A,ROW(A1)*6+2*COLUMN(A1)-7)
在这个公式中,构造行号的部分明显要比前面分开的三个公式复杂很多,不过只要明白了之前的思路,这个公式还是不难理解的。我们来对比一下之前那三个公式:
=INDEX(A:A,ROW(A1)*6-5)
=INDEX(A:A,ROW(A1)*6-3)
=INDEX(A:A,ROW(A1)*6-1)
三个公式只有一点区别,ROW后面减的数字依次是5、3、1。这三个数是随着列(C、D、E列)对应递减的。因此我们使用COLUMN获取列值,然后用7-2*COLUMN(A1)得到数据5,右拉填充公式就得到3、1。用7-2*COLUMN(A1)取代之前公式中的5,右拉填充,就实现一个公式得到三列数据的效果,怎么样是不是很神奇?
看到最后,新手、熟手、老手,不知你是否赞同还是新手的方案最为匪夷所思?!
****部落窝教育-excel网络数据整理****
原创:老菜鸟/部落窝教育(未经同意,请勿转载)