Pracuję nad dużym dokumentem, który ma kilkaset kolumn danych. Wiele z tych wierszy ma zduplikowane wartości w kolumnach, które muszę usunąć.
Oto przykładowy arkusz:
Potrzebuję, aby móc przejść przez każdy wiersz, znaleźć duplikaty w kolumnach B: E i usunąć wszystkie komórki oprócz jednej, najlepiej przesuwając resztę komórek w lewo, aby uniknąć pustych komórek. Musiałbym zachować wszystkie wiersze i resztę ich danych nienaruszonych.
Biorąc pod uwagę powyższy przykład, wynik wygląda następująco:
Kilka notatek:
- Komórki, o których mowa, pojawiają się na końcu każdego wiersza
- Uzasadnienie: Wszystkie te wartości zostały zapisane jako lista w jednej kolumnie i podzielone za pomocą
Text to Columns
. Teraz muszę to wyczyścić i usunąć duplikaty. - Istnieją tysiące wierszy i kilkaset dodatkowych kolumn, które mogą mieć duplikaty.
Czy to możliwe, nawet z VBA? Wszelkie sugestie są bardzo mile widziane. Dziękuję Ci!
Jeśli chcesz użyć VB do przetwarzania danych w miejscu, możesz użyć następujących opcji:
źródło
Możesz to zrobić za pomocą formuły, ale poprawne wartości będą znajdować się w innym miejscu, przynajmniej tymczasowo. Aby zachować dane w tej samej lokalizacji, możesz skopiować nowe dane i Wklej specjalnie> Wartości nad starymi danymi.
Ta formuła tablicowa, wypełniona w prawo i w dół od B7, daje wyniki pokazane poniżej:
=IFERROR(INDEX($B1:$E1,,MATCH(0,COUNTIF($A7:A7,$B1:$E1),0)),"")
Zauważ, że jest to formuła tablicowa i należy ją wprowadzić za pomocą CTRLShiftEnter.
Samouczek dotyczący działania tej formuły znajduje się w Exceljet .
źródło