機械測試機每次測試都會輸出 4 列中的 1000 行資料(+ 標題行)。但是,它輸出從第 1002 行開始的第二個測試,從第 2003 行開始輸出第三個測試,依此類推。我需要將 1001 行(4 列)的每個區塊移到新列中的第 1 行。測試 1 應為 AD 列,測試 2 應為 EH 列,依此類推。
任何幫助,將不勝感激
答案1
輸出將位於單獨的工作表上。
假設您有 10 個資料塊,這些資料塊將在 range 內Export_Curve_03!A1:D10010
。
在輸出工作表的儲存格 A1 中加入公式
=INDEX(Export_Curve_03!$A$1:$D$10010,ROW(A1)+1001*INT((COLUMN(A1)-1)/4),1+MOD(COLUMN(A1)-1,4)
將此公式向下複製到第 1001 行並跨越足夠的列 - 如果有 10 個資料區塊,則為 40 列,因此複製到範圍A1:AN1001
。
對於每組輸入數據,大概只需要進行一次轉換,因此,如果儲存空間成為考慮因素,我的做法是使用特殊貼上將輸出工作表上的所有內容更改為值。
解釋
此INDEX
函數用於從陣列中選取單一儲存格,並且如上面所使用的,具有一般形式,INDEX(array,i, j)
即陣列的第 i 行和第 j 列中的值。
輸出分為Export_Curve_03!$A$1:$D$10010
1001 行的區塊,第一個區塊位於輸出的AD 欄中,第二個位於EH 欄中,第三個位於IL 欄位中,依此類推。格與輸入塊編號進行匹配
INT((COLUMN(cell)-1)/4)
其中cell
表示儲存格引用,例如 A805 或 X20
事實上,此表達式對於AD 列中的單元格計算結果為0,對於EH 列中的單元格計算結果為1,對於IL 中的單元格計算結果為2,等等。 ,這很方便,因為將其合併到表達式中
ROW(cell)+1001*INT((COLUMN(cell)-1)/4)
識別輸入中對應輸出單元格的正確行號。
與輸出列相符的輸入所需列號是透過在列中以 1 開頭的輸出列中重複模式 1,2,3,4,1,2,3,4,... 獲得的A。
表達方式
1+MOD(COLUMN(cell)-1,4)
有效地標識與輸出中的儲存格相對應的輸入列(1、2、3 或 4)。
現在可以將與輸出的任何單元格相對應的輸入的行和列的兩個表達式插入到 INDEX 函數中,從而完成解釋。