Jedyny sposób, jaki znalazłem (używając formuł), to wprowadzenie nowej countkolumny.
Jeśli wartości są wymienione w kolumnie A, zaczynając od wiersza 2, wprowadź formułę =COUNTA(FILTER(A$2:A$7, A$2:A$7 = A2))do B2i przeciągnij w dół, aby ją skopiować. To daje:
| A: VALUE | B: COUNT |
|-----------|----------|
| a | 1 |
| b | 2 |
| c | 1 |
| d | 2 |
| b | 2 |
| d | 2 |
Teraz, gdy mamy liczbę wystąpień każdej wartości, możemy filtrować Akolumnę według wartości B. W komórce C2wstaw formułę =UNIQUE(FILTER(A2:A7, B2:B7 > 1)). To daje:
| A: VALUE | B: COUNT | C: DUPS |
|-----------|----------|---------|
| a | 1 | b |
| b | 2 | d |
| c | 1 | |
| d | 2 | |
| b | 2 | |
| d | 2 | |
Objaśnienie wzorów
=COUNTA(FILTER(A$2:A$7, A$2:A$7 = A2))
filterPunkt kontroluje Akolumny i znajduje komórek, które mają taką samą wartość, jak komórki A2( A2zastępuje się odpowiednią komórkę podczas kopiowania wzoru).
counta zlicza wartości (w tym nienumeryczne).
=UNIQUE(FILTER(A2:A7, B2:B7 > 1))
- To
filtersprawdza kolumnę pod Bkątem wartości > 1i zwraca odpowiednie wartości z kolumny A. uniqueFunkcja po prostu sprawia, że na pewno mamy tylko wrócić każdej wartości raz, tak Do not dostajemy bdwa razy, na przykład.
Jednak , bardziej elegancki sposób byłoby użyć funkcji skryptu:
function dups(rows) {
var values = {};
var duplicates = [];
for (var i = 0; i < rows.length; i++) {
var value = rows[i][0];
if (values[value] !== undefined && duplicates.indexOf(value) == -1) {
duplicates.push(value);
} else {
values[value] = true
}
}
return duplicates;
}
Przejdź do Narzędzia → Edytor skryptów , wklej powyższy kod i zapisz. Możesz teraz wywołać funkcję, wprowadzając formułę w =dups(A2:A7)dowolnym miejscu. Zwraca duplikaty znalezione w A2:A7.
Przygotowałem przykładowy arkusz kalkulacyjny, aby zademonstrować obie możliwości , nie krępuj się i spójrz na nie i skopiuj.