2014-01-24 45 views
0

我對excel很新穎,並且一直在尋找許多函數來嘗試使用我收集的一些數據。在excel中複製一行,如果col符合一個特定的標準到一個新的工作表中

我每5分鐘收集2〜3個數據集(索引0〜2)。例如...

標識日期索引時間
1 2014年1月1日0:00 0 24
2 2014年1月1日0:00 1 25
3 2014年1月1日0: 00 2 25

4 12/31/2013 23點50分0 24
5 12/31/2013 23時50 1 25
6 12/31/2013 23:45 0 24
7 12/31/2013 23:45 1 24
8 12/31/2013 23:45 2 25

........

我想複製每次有最短時間(col_4)值的整行。 (也包括那些擁有價值的人)。作爲reult ...

標識日期索引時間
1 2014年1月1日0:00 0 24
4 12/31/2013 23時50 0 24
6 12/31/2013 23:45 0 24
7 12/31/2013 23:45 1 24

我一直在尋找像分鐘,VLOOKUP,選擇,指數函數,......我也看着如何做vba。我已經部分做了一些事情,但無法完成。任何提示或意見將不勝感激。 在此先感謝。

+0

我找不出什麼觸發組更改....它是**索引**或**日期/時間** - 那麼你的結果應顯示ID的1,4,6 ...即什麼使團隊在7和8之間變化? – MikeD

+0

對不起...我寫錯了結果。我編輯了結果。組更改觸發器可以是索引或日期/時間。我每5分鐘收集一次數據,一些有3(idx0〜2),一些有2(idx0〜1)的數值。謝謝。 – user3230889

回答

0

(在單元格A1列標籤「ID」)

底層規則似乎:

「的記錄是第一的基團如果其時間(最後一欄)比時間的情況下以前的記錄「。

如何實現這個規則取決於你想應用的自動化程度。公式,唯一的方法看起來是這樣的:

  • 創建一個額外的列E,在E1列標題是「等級」
  • 開始與E2,輸入公式=IF(D2<D1,1,E1+1)抄下
  • 做一個自動篩選和(等級= 1)以顯示第一組記錄

(意思是當滿足第一組條件時,等級設置爲1,否則它會遞增......優勢你也可以通過查看組ma查看你在一個組中有多少條記錄ximum)

在VBA腳本中,我會實現這個規則,像這樣...

Sub FindFirstOfGroup() 
Dim SrcRange As Range, Idx As Long 

    Set SrcRange = ActiveSheet.[A1] 
    Idx = 2 

    Do While SrcRange(Idx, 1) <> ""      ' exit condition - first row with no ID 
     If SrcRange(Idx, 4) < SrcRange(Idx - 1, 4) Then ' group condition 
      ' first-of-group found 
      ' Debug.Print SrcRange(Idx, 1)     ' do whatever needs to be done 
     End If 
     Idx = Idx + 1 
    Loop 

End Sub 

或者你可能會想使用規則

「的記錄是首個組,如果其指數爲0。」

+0

哇。謝謝。你的想法給了我一些想法,使用我學到的功能,但是,不正常工作。我正在考慮對領帶價值進行排名,而時間並不總是按照降序排列。我設法使用= {MIN(IF(B2 = B:B,D:D))}}來獲取每個分組的最短時間(也使用大於MIN的大括號)。我用它= IF(E2 = {MIN(IF(B2 = B:B,D:D))},1,E1 + 1)將最小的聯繫值排序爲1和其他+1。但我猜IF語句中的花括號不起作用。 – user3230889

相關問題