2016-12-19 161 views
0

我需要以複雜的方式刪除重複項。對於選定的行,我需要刪除所有其他重複項和其他行,我需要保留最早的條目。如何刪除範圍內的所有其他重複Google Spreadsheets

我在想什麼(選擇行:|史蒂夫| 22:00 |:比這個(下午4點&下午1點)

  • 按時間排序等

    1. 刪除重複項史蒂夫
    2. 獲取唯一值

    Table before: 
    | Steve | 10pm |  
    | Mike | 8pm | 
    | Steve | 4pm | 
    | Joe | 6pm | 
    | Mike | 3pm | 
    | Steve | 1pm | 
    
    Ex1: 
    Selected: | Steve | 4pm | 
    | Steve | 4pm |   
    | Joe | 6pm |  
    | Mike | 3pm | 
    
    Ex2 
    Selected: | Steve | 10pm | 
    | Steve | 10pm | 
    | Joe | 6pm | 
    | Mike | 3pm | 
    
    Ex3: 
    Selected: | Steve | 1pm | 
    | Joe | 6pm | 
    | Mike | 3pm | 
    | Steve | 1pm | 
    

    編輯:12/19/2016 12:02 am

    我找到了解決方案,我的具體問題。下面的答案證明對於刪除重複項是正確的。我能夠成功找出一個立場。現在我才意識到,但是,這不是一個妥善的解決辦法,以更大的問題,我有...

    =MATCH(B2,unique(INDEX(SORT(sort({query(B2:C, "select B, min(C) where B <> '" &B2 & "' and B <> '' group by B label min(C) ''", 0); B2:C2}, 2, false),2,1),0,1)),0) 
    
  • 回答

    2

    說,你的數據是在列A:(?不知)B和所選行有已被複制到C1:D1。 (無論你的選擇方法是什麼,你應該能夠使選定的行出現在某個地方)。那麼一個可能的策略是:

    1. 使用query選擇所有非史蒂夫,挑選每個最早的時間。
    2. 將所選行添加到結果中
    3. 根據需要對整個事物進行排序。

    這是我是如何做到的;查詢範圍從第二行開始,以避免(可能)標題。

    =sort({query(A2:B, "select A, min(B) where A <> '" & C1 & "' and A <> '' group by A label min(B) ''", 0); C1:D1}, 2, false) 
    

    同樣的,換行:

    =sort({ 
        query(A2:B, 
        "select A, min(B) 
         where A <> '" & C1 & "' and A <> '' 
         group by A 
         label min(B) '' 
        ", 0); 
        C1:D1}, 
    2, false) 
    

    所以查詢按名稱選擇最早的時間挑選從C1不同的名字,和組。它不使用任何標題標籤,以避免它們混在一起。使用數組符號{row1; row2}附加行C1:D1,最後按降序將數組按第二列排序。

    +0

    這真是太近了。問題是;我需要爲每一行應用此公式......理想情況下,最終結果將是一個數字。 –

    +0

    我現在意識到,也許會問一般問題會更好X_x –

    +0

    剛剛意識到如何使其工作。幾會回覆你。 –

    相關問題