Excel将多个表格转换成长形数据

我有一个数据集,我需要转换为longform,所以我可以在数据分析程序(R)中使用它。 格式是为每个表格标准化的,所以我想知道是否有一种方法可以为我转换数据。 先谢谢您的帮助。

数据集 数据集

长表 长表

如果你必须经常处理大量的数据,那么编写一个macros来循环遍历所有的数据是最好的。 对于大量数据来说,手动解决方法仍然更快,它是创build一组公式将一个人的位置上的一个点的所有数据转换为8行longform数据的公式。 然后通过更改参考,您可以重复使用这些公式在每个人的地方的每个点:

你的前4列是手动的:位置,点,季度,types。 他们每8行有固定的值。 手动input一个数据点,他们将被复制以后。

然后有第五个工作栏,logging每个人在某个地点的每一组数据的定位点的位置。 对于这个例子,我假设你在一个名为“Data”的表单元格B3中有一个“NW”值。 在你的第五列表格中,只有第一行(单元格E2)在文本“数据!B3”中不加等号。

所有8行的剩余列都使用OFFSET和INDIRECT函数引用此锚点。 对于前8行数据中的每一列,根据它们相对于定位点的相对位置,引用数据集中的每个值:

第一个数据列是NW灌木距离值,它被1行和1列偏移:= OFFSET(INDIRECT(E2),1,1)

第二个数据列是NW灌木高度,偏移1行和2列:= OFFSET(INDIRECT(E2),1,2)

继续通过该行的其余列。 然后转到表格中的下一行。 第一个数据列是NE灌木距离,它与锚点NW细胞偏移7行1列:= OFFSET(INDIRECT(E2),7,1)

那么第二行的第二个数据列是NE灌木高度,它与锚点NW单元格偏移7行和2列:= OFFSET(INDIRECT(E2),7,2)

为所有8行的所有列准备这些公式。 这需要一点时间,但是完成后,您可以复制整个块并将其粘贴到第一个块的下面。 将Data!B3中的整个块的一个锚点值更新为下一个数据块(例如Data!H3)中的NW位置,现在所有公式将从所有单元格中提取相对于新锚点的值。

对每个数据块重复这个操作,你就可以很快地把它放在longform中。