2017-10-09 112 views
0

我有一個數據集,我需要將其轉換爲longform,所以我可以在數據分析程序(R)中使用它。格式是針對每個表格進行標準化的,所以我想知道是否有一種方法可以爲我轉換數據。 在此先感謝您的幫助。Excel將多個表格轉換爲longform數據

數據集 Data set

長篇 Longform

回答

1

如果你要爲大量的數據經常這樣做,通過一切寫一個宏循環將是最好的。對於大量數據而言仍然較快的手動解決方法是創建一組公式將一個人的位置上的一個點的所有數據轉換爲8行longform數據的公式。然後通過更改參考,您可以在每個人的位置重新使用這些公式:

您的前4列是手動:位置,點,季度,類型。它們每8行具有固定值。手動輸入一個數據點,他們將被全部複製。

然後有一個第5個工作列,記錄每個人在某個地點的每組數據的錨點位置。對於這個例子,我假設你在名爲「Data」的表單元格B3中有一個「NW」值。在第5列表格中,僅在第一行(單元格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。

+0

謝謝你,這花了我一些時間來解決它,但比手動完成所有數據快得多。 最終版面的屏幕截圖https://imgur.com/a/bkyT9 – RyanMe321