调试经验——在Excel中使用OFFSET函数将多行多列数据转换成单列数据(Transform data block to single column)

需求说明:需要将下表中C列的内容按逗号拆分成独立的单元格。


首先想到的方法是使用Excel的分列功能(Text to Column),将C列拆分成多行多列,如下所示。


剩下的问题就是:如何将这个分列后的数据块串联成一个单列数据?

答案是:可使用Offset函数满足此需求。(在Excel中,OFFSET函数的功能为以指定的引用为参照系,通过给定偏移量得到新的引用。)

 

具体步骤:

1.      观察到分列后有很多空的单元格,可能会影响公式的自动填充。所以在数据区(B列至Q列)的下一列,即R列自动填充序列号。

2.      序列号要自动填充到多少为止呢?由于分列数据块的总单元格数为,16*104=1664,向上取其整千位数近似值1700即自动填充的上限。


3.  关键的一步:在S2单元格输入以下公式:

=OFFSET(B$2,INT((ROW(B2)-2)/16),MOD(ROW(B2)-2,16)),将鼠标悬浮在含有公式的单元格右下角,会出现一个黑色的十字符号,此时,双击鼠标左键,可完成自动填充。数据块所有单元格的内容将出现在S列,即,实现了多行多列数据向单列数据的转换。

上述公式中的B$2即分列数据块的第一个单元格的地址,2为第一个单元格的行号,16为数据块的总列数

4.  接下来做一些简单处理,就可以得到一份以Keyword为主键的一维表了。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值