2012-11-09 16 views
61

Mam kolumnę wartości, które często pojawiają się jako duplikaty. Trzeba utworzyć nową kolumnę, unikalnych wartości opartych na pierwszej kolumnie, co następuje:Ignoruj ​​duplikaty i twórz nową listę unikatowych wartości w programie Excel

Column A Column B 
a   a 
a   b 
b   c 
c 
c 

tej kolumnie B będzie faktycznie musi pojawić się na innym arkuszu, w tym samym skoroszycie, więc zakładam, że będzie trzeba pracować z formatem stylu sheet2!A1.

Nie miałem szczęścia w opcjach menu Dane/Filtr, ponieważ wydaje się, że działa on tylko na polecenie. Potrzebuję kolumny B, która aktualizuje się automatycznie po wprowadzeniu nowej wartości do kolumny A.

Odpowiedz

49

Odpowiedź Totero jest poprawna. Link jest również bardzo pomocny.

zasadzie formuła czego potrzebujesz to:

B2=INDEX($A$2:$A$20, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$20), 0)) 

Następnie naciśnij ctrl + przesunięcie + wprowadzić (lub nie będzie działać stosując formułę tablicową).

Dwie ważne rzeczy, o których warto pamiętać tutaj: Pełna lista znajduje się w komórkach A2:A20, to formuła musi być wklejony w komórce B2 (nie B1 jako że daje odwołanie cykliczne). Po drugie jest to formuła tablicowa, więc trzeba nacisnąć Ctrl+ SHIFT + wprowadzić lub nie będzie działać prawidłowo.

+8

Jak pozbyć się N/A i 0? –

+0

@ MoritzSchmitzv.Hülst Pozbądź się '# N/A' z' IFERROR (..., "") 'i pozbądź się' 0', używając właściwego określenia zakresu, tzn. '$ A $ 2: $ 20 $ w tym przykładzie, jeśli potrzebujesz, aby był dynamiczny, użyj 'OFFSET' – Dan

+0

Co robi B2 w tej formule? Nie jest to w stosunku do niczego w moim arkuszu i tylko dostaję N/A przez całą drogę. – Eoin

19

Istnieje dobry poradnik, jak to zrobić: here.

Zasadniczo coś podobnego do:

=INDEX(Sheet1!$A$1:$A$20, MATCH(0, COUNTIF($B$1:B1,Sheet!$A$1:$A$20), 0)) 
+1

Cześć Totero, z pewnością ta formuła wydaje się odnosić do tego, co chcę zrobić, ale zwraca "Ostrzeżenie o okólnikach" i wyświetla po prostu 0 w każdej komórce. Co ja robię źle? – tob88

+5

Okólnik oznacza, że ​​formuła znajduje się w komórce, do której odnosi się ta sama formuła. Sprawdź tylko, czy formuła nie znajduje się w zakresie A1: A20 lub komórka B1. –

4

Na sortowane kolumna, można również wypróbować ten pomysł:

B2=A2 
B3=IFERROR(INDEX(A:A,MATCH(B2,A:A,1)+1),"") 

B3 może być wklejony w dół. Będzie to wynik 0, po ostatnim unikalnym dopasowaniu. Jeśli jest to niechciane, wstaw trochę instrukcji IF, aby to wykluczyć.

EDIT:

Łatwiejszy niż instrukcji IF, przynajmniej dla tekstowe wartości:

B3=IFERROR(T(INDEX(A:A,MATCH(B2,A:A,1)+1)),"") 
+0

formuła nie działa, jeśli dane jest " b b c c e d d" –

+0

@FahimParkar tak, wiem, jak powiedziałem: "Na sortowanej kolumnie" – Jook

+0

ohh, ja wstałem zauważyłem to. Lepiej podświetlić taki punkt (co jest imp) –

2

W module arkusza do arkusza zawierającego listę:

Private Sub Worksheet_Change(ByVal Target As Range) 

    Dim rngDest As Range 

    If Not Intersect(Target, Me.Columns(1)) Is Nothing Then 

     Set rngDest = ThisWorkbook.Sheets("Sheet2").Range("A1") 

     Me.Range(Me.Range("A2"), Me.Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter _ 
      Action:=xlFilterCopy, CopyToRange:=rngDest, Unique:=True 

    End If 

End Sub 
5

Aby usunąć duplikaty z kolumny

  1. Posortuj wartości w kolumnie A A-> Z
  2. Wybór kolumna B
  3. Gdy kolumna B jest wybrany jeszcze w polu wejściowym wzorze wprowadzić

    =IF(TRIM(A1)=TRIM(A2),"",TRIM(A1)) 
    
  4. Podczas Kolumna B jest nadal zaznaczony, wybierz Edycja -> Fill -> dół (w nowszych wersjach, należy zaznaczyć komórkę B1 i pociągnąć w dół skrzynka zewnętrzna rozwinąć całą drogę w dół w kolumnie)

Uwaga: jeśli kolumna B jest na innym arkuszu, można zrobić Arkusz1 A1 i A2 Arkusz1!.

2

Mam listę nazw kolorów w zakresie A2: A8, w kolumnie B Chcę wyodrębnić odrębną listę nazw kolorów.

Wykonaj podane poniżej czynności:

  • wybrać komórkę B2; zapisz wzór, aby pobrać unikalne wartości z listy.
  • =IF(COUNTIF(A$2:A2,A2)=1,A2,””)
  • Naciśnij Wprowadź na klawiaturze.
  • Funkcja zwróci nazwę pierwszego koloru.
  • Aby zwrócić wartość dla pozostałych komórek, skopiuj tę samą formułę. Aby skopiować formułę w zakresie B3: B8, skopiuj formułę w komórce B2, naciskając klawisz CTRL + C na klawiaturze i wklejając w zakresie B3: B8, naciskając klawisz CTRL + V.
  • Tutaj możesz zobaczyć wynik, w którym mamy unikalną listę nazw kolorów.
9

moim przypadku EXCEL zamrożono przy użyciu formuły

B2 = indeks ($ a $ 2: $ $ 20, modelowej (0 COUNTIF ($ B $ 1: B1 $ A 2 USD: 20 USD), 0))

ponieważ było wiele wierszy (10000). Zrobiłem to w inny sposób, który pokazuję poniżej.

Skopiowałem moją oryginalną listę do drugiej kolumny, a następnie za pomocą funkcji "usuń duplikaty" w Excelu mogłem znaleźć listę unikatowych wartości.

Skopiowane z Microsoft Office Witryna:

Select all the rows, including the column headers, in the list 

chcesz filtrować.

Kliknij górną lewą komórkę zakresu, a następnie przeciągnij do dolnej prawej komórki.

On the Data menu, point to Filter, and then click Advanced Filter. 
In the Advanced Filter dialog box, click Filter the list, in place. 
Select the Unique records only check box, and then click OK. 

Filtrowana lista jest wyświetlana, a zduplikowane wiersze są ukryte.

On the Edit menu, click Office Clipboard. 

Zostanie wyświetlone okienko zadań Schowek.

Make sure the filtered list is still selected, and then click Copy Copy button. 

listę filtrowaną jest wyróżniony ograniczających konturów i wybór pojawia się jako>> element w górnej części schowka.

On the Data menu, point to Filter, and then click Show All. 

Oryginalna lista jest ponownie wyświetlana.

Press the DELETE key. 

Oryginalna lista zostanie usunięta.

In the Clipboard, click on the filtered list item. 

Filtrowana lista pojawia się w tym samym miejscu, co oryginalna lista.

Źródło: Microsoft Office WWW (Link usunięty, bo nie żyje)

+0

Niska technika i bardzo skuteczne. Pamiętaj, aby NIE wyczyścić filtra przed kopiowaniem i wklejaniem (prawdopodobnie dla większości z was, ale zostałem złapany za pierwszym razem!) –

+0

Link znajduje się tutaj: https://support.office.com/en-us/article/Filter -dla-unikalnych-wartości-lub-usuń-duplikatów-ccf664b0-81d6-449b-bbe1-8daaec1e83c2 – tavnab

-6

nowoczesnego podejścia jest uwzględnienie przypadków, w których kolumna informacji pochodzą z serwisu WWW, takich jak źródła OData. Jeśli trzeba wygenerować filtr zaznaczyć pola przy masowej danych, które replikowane wartości dla kolumny, należy rozważyć poniższy kod:

var CatalogURL = getweb(currenturl) 
       +"/_api/web/lists/getbytitle('Site%20Inventory%20and%20Assets')/items?$select=Expense_x0020_Type&$orderby=Expense_x0020_Type"; 

/* the column that is replicated, is ordered by <column_name> */ 

    OData.read(CatalogURL, 
     function(data,request){ 

      var myhtml =""; 
      var myValue =""; 

      for(var i = 0; i < data.results.length; i++) 
      { 
       myValue = data.results[i].Expense_x0020_Type; 

       if(i == 0) 
       { 
         myhtml += "<option value='"+myValue+"'>"+myValue+"</option>"; 
       } 
       else 
       if(myValue != data.results[i-1].Expense_x0020_Type) 
       { 
         myhtml += "<option value='"+myValue+"'>"+myValue+"</option>"; 

       } 
       else 
       { 

       } 


      } 

      $("#mySelect1").append(myhtml); 

     }); 
0

Więc za to zadanie sortowanie danych w kolejności od A do Z lub Z do a, wtedy wystarczy użyć jeden prosty wzór, jak podano poniżej:

=IF(A2=A3, "Duplicate", "Not Duplicate") 

powyższy wzór wskazuje, że w przypadku danych kolumny A2 (a kolumny i 2 jest numer wiersza) jest podobna do A3 (a kolumny i 3 Numer wiersza), a następnie wydrukuje Duplicate else wyświetli Not Duplicate.

Rozważmy przykład, kolumna A zawiera adres e-mail, w którym niektóre są podwójne, więc w kolumnie 2, użyłem wyżej podaną formułę, która w wynikach wyświetlanych mi duplikaty komórek 2 jeden jest Row Row 2 i 6.

Jeden masz zduplikowane dane, po prostu umieść filtr na swoim arkuszu i ujawnij tylko zduplikowane dane i usuń wszystkie niepotrzebne dane.

0

Uczciwie podążyłem za tymi przykładami do tee i po prostu nie zadziałały. To, co zrobiłem po tym, jak walczyłem bez sensu, próbując uruchomić program Excel, to skopiować całą zawartość mojej kolumny do NotePad ++, gdzie w ciągu kilku minut udało mi się znaleźć proste rozwiązanie.Spójrz na to: Removing duplicate rows in Notepad++

Edycja: Oto krótki przegląd tego, jak to zrobić w TextFX:

Wtyczki -> Plugin Manager -> Pokaż Plugin Manager -> Dostępny zakładka -> TextFX -> Install

Po TextFX jest zainstalowany w notepad ++, a następnie zaznaczyć cały tekst, który chcesz usunąć duplikaty z, a następnie upewnij się, aby sprawdzić: TextFX -> TextFX Narzędzia -> Sortuj wyprowadza tylko unikatowych linii

następnie kliknij „sort rozróżnia wielkie i małe litery "lub" sortuje duże i małe litery "i przeprowadzi sortowanie unikatowe.

+1

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić w nim istotne części odpowiedzi i podać link do odniesienie. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ recenzja/niskiej jakości-posts/13666463) –

+0

Dobry punkt Deepak - będę edytować, aby dołączyć! –

0

Znajdź here wspomniano powyżej wzoru z kontrolą błędów

=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"") 

gdzie: (B2: B9 jest danych kolumny, które chcesz wyodrębnić unikatowe wartości, D1 jest powyżej komórka gdzie formuła znajduje)