需求说明:需要将下表中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为主键的一维表了。
