Załóżmy, że mamy taki zestaw danych:
Chciałabym zmienić kolejność kolumn tego zakresu na taką:
Dodatkowo chcę móc łatwo powtórzyć takie sortowanie kolumn w przyszłości, ponieważ dane generowane są każdorazowo z systemu. A żeby jeszcze utrudnić sprawę – za każdym razem mogą zostać wygenerowane inne kolumny, na szczęście zawsze spośród kolumn wyżej wymienionych. Czyli np. raz możemy mieć wszystkie kolumny, a innym razem – wszystkie poza kolumną Klient.
Temat może wydawać się dość trudny, jednak wcale taki nie jest. Wystarczą nam dwie excelowe funkcjonalności, aby sobie z nim poradzić:
- Tworzenie listy niestandardowej
- Sortowanie
I dokładnie takie etapy będzie miało nasze rozwiązanie: najpierw zdefiniujemy kolejność sortowania, tworząc listę niestandardową (czynność jednorazowa), a następnie posortujemy kolumny zakresu według tej kolejności.
1. Tworzenie listy niestandardowej
Pierwszym krokiem jest stworzenie listy niestandardowej, określającej kolejność sortowania kolumn. Tę kolejność mamy już wypisaną w zakresie J3:J10 (poprzedni obrazek).
Z tego zakresu wystarczy teraz stworzyć listę niestandardową – opis potrzebnych do tego czynności znajdziesz w tym artykule: Tworzenie listy niestandardowej
2. Sortowanie kolumn w określonej kolejności
Jak już mamy zdefiniowaną listę niestandardową, to śmiało możemy przejść do sortowania zakresu.
Wystarczy, że ustawię się gdzieś w obrębie mojego zakresu i z menu Dane wybiorę przycisk sortowania Sortuj.
Pojawi się kreator sortowania, z którego:
- Należy wybrać Opcje i ustawić w nich sortowanie od prawej do lewej
- Następnie wybrać wiersza arkusza, po którym ma nastąpić sortowanie (u mnie jest to wiersz 3.)
- Ostatni krok to wybór kolejności sortowania. Tutaj wybieramy, że chcemy sortować wg listy niestandardowej i z okienka, które po chwili się pojawi, wybrać przed chwilą zdefiniowaną listę.
Teraz wystarczy już tylko zatwierdzić wszystkie okienka i voila! Efekt jest taki:
Wspominałam, że nasze sortowanie ma sobie poradzić nawet w sytuacji, kiedy którejś kolumny zabraknie. Przetestujmy to.
Oto zakres bez kolumny Klient i Ilość op.:
Po uruchomieniu sortowania (już nie muszę definiować listy niestandardowej – mogę ją śmiało wykorzystywać w dowolnym pliku na moim komputerze) efekt mam następujący:
Jak widać, to rozwiązanie poradziło sobie z tym bez problemu 😊.
Jedyny minus to taki, że za każdym razem trzeba to sortowanie wyklikiwać. W sumie to nie ma z tym tak dużo pracy 😉. Jak dla kogoś zbyt dużo, to zawsze może sobie nagrać proste makro, które będzie takie sortowanie robiło za niego.
Tylko prostego odświeżenia wymagałoby rozwiązanie za pomocą Power Query. I korci mnie, żeby Ci je kiedyś pokazać… 😉
A tymczasem to tyle na dziś!
Film na Youtubie, gdzie pokazuję powyższe rozwiązanie:
0 komentarzy