2015-02-05 158 views
0

我有一個巨大的Excel文件,其中包含時間列和數據列。在兩個新的列中,我希望根據時間列的值在新的一秒開始時抽取時間和相應的數據(同一行)。每秒行數不一致,所以我不能使用線性偏移量。的時間(A)和數據(B)的列格式如下:根據單元格中的值選擇相鄰數據

Time  Data 
163010.3838 0.009332522 
163010.8468 0.009332853 
163011.3099 0.009332936 
163011.7749 0.00933318 
163012.2399 0.009334042 
163012.7049 0.00933733 
163013.168 0.009335146 
163013.633 0.009332692 
163014.098 0.009335718 
163014.5631 0.009334616 
163015.0271 0.009334818 
163015.4921 0.009336317 
163015.9571 0.009335719

時間是在格式hhmmss.decimal值所見。在相鄰的列(比如C和D)中,每當到達新的秒數時,我都希望獲取每行的時間和數據值。所以它看起來像:

Time Data 
163010 0.009332522 
163011 0.009332936  
163012 0.009334042

等等。

回答

0

假設Time在A1,請嘗試在C2:

=INT(A2) 

在D2:

=B2 

和D3:

=IF(INT(A3)>INT(A2),B3,"") 

第一和持續上述複製下來以適應。

+0

對不起,我不認爲我展示了p的全部範圍最初的恐懼。請參閱更新後的數據集 – Hyung 2015-02-05 21:43:28

0

假設一個數據建立和期望的結果,看起來像這樣:

tigeravatar example for Hyung

在單元格D2和複製下來的以下公式:

=IFERROR(INDEX(INT($A$2:$A$14),MATCH(0,INDEX(COUNTIF(D$1:D1,INT($A$2:$A$14)),),0)),"") 

在單元格E2和複製下來是這公式:

=IF(D2="","",INDEX($B$2:$B$14,MATCH(D2,INDEX(INT($A$2:$A$14),),0))) 
+0

這適用於小型數據集,但對於數千行來說,執行該公式所需的處理時間很多次似乎不可行。 :/ – Hyung 2015-02-05 22:10:54

+0

可以使用類似於pnuts的建議的解決方案。或者,如果您不反對VBA,可以通過錄制宏並執行這些步驟來開發可行且高效的解決方案,然後清理記錄的代碼。 – tigeravatar 2015-02-05 22:15:07

+0

將使用pnuts,因爲我不必多次重複。謝謝您的幫助! – Hyung 2015-02-05 22:24:12

相關問題