Próbuję sortować wiersze na podstawie wielu wartości. W tym przykładzie próbuję rozdzielić pasujące „Produkt SN” (kolumna M) i „Nazwa CE” (kolumna L), które mają kod akcji „220 - Zastąpiony komponent” (kolumna N) w jednym arkuszu, a te bez „ 220 "w inny arkusz.
Na przykład
- C-666 LC011169 nie ma „220” i powinien znajdować się na jednym arkuszu
- C-958 LC011169 ma „220” i powinien znajdować się na własnym arkuszu
Wiem, że może to wydawać się mylące, ale będę musiał codziennie sortować setki takich elementów zamówienia i pracuję nad usprawnieniem tego procesu.
Uproszczona wersja wyglądałaby jak na poniższym obrazku (gdzie X = Zamieniono ):
Aby przejść dalej, próbuję połączyć „kody symptomów” (kolumna O) po zakończeniu pierwszej operacji. To jest mój ostateczny cel, w którym Symbole są Objawami :
Odpowiedzi:
Eksperymentowałem z pewnym VBA do sortowania i kopiowania.
Zobacz link do pliku xlsm na końcu, aby uzyskać więcej informacji.
Mamy więc tutaj kod VBA, który sortuje oryginalne informacje (po prostu kopiowanie, nie dotykanie oryginalnej listy) do trzech nowych tabel.
Co to robi:
Czego nie robi:
Zawiera również makro do czyszczenia posortowanych tabel. Można to również wykorzystać do wyczyszczenia tabel przed sortowaniem po raz drugi, aby uniknąć duplikatów.
Kod sortowania (najprawdopodobniej można to poprawić, ale robi się późno):
Kod do czyszczenia tabel:
Plik: https://drive.google.com/open?id=0B_8icTMsheWfTUV0YjJCaElmTkU
EDYTOWAĆ
Zaktualizuj kod, aby zrobić to, co skomentowałeś (myślę):
Jak widać tutaj, używam
Instr
do uzyskania częściowego dopasowania ciągu zamiast wartości bezwzględnej, ponieważ komórka zawiera więcej niż tylko liczbę.Jeśli chcesz sprawdzić, powiedzmy, różne numery seryjne, możesz zamiast tego przypisać tę wartość do zmiennej i wprowadzić numer seryjny, który chcesz posortować w polu tekstowym.
Nie zawracałem sobie głowy zmianą nazw arkuszy, ale w tym przykładzie używam tylko dwóch arkuszy.
Wyjaśnienie, jak napisać instrukcję If - zwróć uwagę na nawias wokół OR:
źródło