图22显示了一个导入文件时常见的数据布局类型。每个记录由一列中的三个连续单元格组成:姓名、部门和位置。我们的目标是转换此数据,以便将每个记录都显示在三列中。
图22 需要转换为三列的垂直数据
可使用几种方法来转换这种类型的数据,我们介绍一种非常容易的方法。该方法需要进行少量设置,其余工作将由单个公式完成(将其复制到一个区域中)。
首先,创建一些垂直和水平的数字“标头”,如图23中所示。C列包含的数字对应于每个数据项的第一行(在此示例中是Name)。在此示例中,在C列中放置以下值:1、4、7、10、13、16和19。可以使用一个简单的公式来生成此系列数字。
标头的水平区域由一些连续整数(从1开始)组成。在此示例中,每个记录包含三个数据单元格,因此水平标头包含1,2和3。
图23 用于将垂直数据转换为行的标头
现在,单元格D2中的公式如下:(www.xing528.com)
=OFFSET($A$1,$C2+D$1-2,0)
将此公式复制到下面的两列,并向下复制到下六行。其结果如图24所示。
图24 利用单个公式将垂直数据转换为行
可以轻松地修改此方法以处理包含不同数量的行的垂直数据。例如,如果每个记录包含10行数据,则C列的标头值将是1,11,21,31,以此类推。水平标头将包括值1至10,而不是1至3。
请注意,该公式使用的是单元格A1的绝对引用。在复制公式时,该引用不会更改,因此所有公式中将使用单元格A1作为基础。如果数据从不同单元格中开始,则将$A$1更改为第一个单元格的地址。
该公式还在OFFSET函数的第二个参数中使用“混合”引用。C2引用在C前而有个美元符号,所以C列是该引用的绝对部分。在D1引用中,美元符号位于1之前,所以第1行是引用的绝对部分。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。