Note: The other languages of the website are Google-translated. Back to English

Jak automatycznie sortować datę po wprowadzeniu lub zmianie daty w programie Excel? 

W programie Excel Sortuj funkcja może pomóc w sortowaniu daty w kolejności rosnącej lub malejącej, zgodnie z potrzebami. Ale nie jest dynamiczna, jeśli posortowałeś datę, a następnie dodałeś do niej nową datę, musisz posortować ją ponownie. Czy są jakieś dobre i szybkie sposoby automatycznego sortowania daty przy każdym wprowadzaniu nowej daty w arkuszu?

Automatyczne sortowanie daty po wprowadzeniu lub zmianie daty za pomocą formuły

Data automatycznego sortowania, gdy data jest wprowadzana lub zmieniana za pomocą kodu VBA


strzałka niebieski prawy bąbelek Automatyczne sortowanie daty po wprowadzeniu lub zmianie daty za pomocą formuły

Na przykład pierwotna data w kolumnie A, poniższa formuła może pomóc w automatycznym sortowaniu daty lub innych ciągów tekstowych w nowej kolumnie pomocnika na podstawie kolumny, którą chcesz posortować, wykonaj następujące czynności:

1. Wprowadź tę formułę:

=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,"<="&$A$2:$A$15),0)) do pustej komórki obok kolumny z datą, C2, a następnie naciśnij Ctrl + Shift + Enter klucze razem, a otrzymasz sekwencję liczb, a następnie przeciągnij uchwyt wypełniania w dół do komórek, których chcesz użyć, patrz zrzut ekranu:

Uwagi: W powyższym wzorze: A2: A15 to oryginalny zakres dat, który chcesz automatycznie sortować.

autosortowanie dokumentów według daty 1

2. Następnie sformatuj liczby jako format daty, klikając Krótka randka z Ogólne lista rozwijana pod Strona Główna tab, zobacz zrzut ekranu:

autosortowanie dokumentów według daty 2

3. Następnie numery sekwencji zostały przekonwertowane na format daty, a oryginalna data również została posortowana, patrz zrzut ekranu:

autosortowanie dokumentów według daty 3

4. Odtąd, po wprowadzeniu nowej daty lub zmianie daty w kolumnie A, data w kolumnie C zostanie automatycznie posortowana w kolejności rosnącej, patrz zrzut ekranu:

autosortowanie dokumentów według daty 4


strzałka niebieski prawy bąbelek Data automatycznego sortowania, gdy data jest wprowadzana lub zmieniana za pomocą kodu VBA

Poniższy kod VBA może pomóc w automatycznym sortowaniu daty w oryginalnej kolumnie po wprowadzeniu nowej daty lub zmianie daty zgodnie z potrzebami.

1. Przejdź do arkusza roboczego, w którym chcesz automatycznie sortować datę podczas wprowadzania lub zmiany daty.

2. Kliknij prawym przyciskiem myszy kartę arkusza i wybierz Wyświetl kod z menu kontekstowego w wyskakującym pliku Microsoft Visual Basic for Applications okno, skopiuj i wklej następujący kod w puste miejsce Moduł okno, patrz zrzut ekranu:

Kod VBA: automatyczne sortowanie po wprowadzeniu lub zmianie daty:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

autosortowanie dokumentów według daty 6

Uwagi: W powyższym kodzie wprowadzona data będzie automatycznie sortowana w kolumnie A, możesz ją zmienić A1 i A2 do własnych komórek, jak potrzebujesz.

3. Odtąd po wpisaniu daty w kolumnie A data zostanie posortowana automatycznie rosnąco.


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (15)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Zapomniałeś wspomnieć, że formuła to tablica i musisz wcisnąć ctrl+Shift+enter. Na szczęście masz zrzut ekranu lub Twoja strona byłaby marnowaniem cyberprzestrzeni
Ten komentarz został zminimalizowany przez moderatora na stronie
Co się stanie, jeśli na liście znajduje się zduplikowana data? I chcę, żeby pojawiły się oba numery.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj, Ryanie,

Aby posortować daty z duplikatami, należy zastosować następującą formułę:

=IFERROR(INDEX($A$2:$A$11,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$11,"<="&$A$2:$A$11),0)),IF(ROWS($A$2:A2)<ROWS($A$2:$A$11),B3,""))

Pamiętaj, aby jednocześnie nacisnąć klawisze Shift + Ctrl + Enter.

Mam nadzieję, że może ci pomóc, dziękuję!
Ten komentarz został zminimalizowany przez moderatora na stronie
Niesamowite :) Działa dobrze
Ten komentarz został zminimalizowany przez moderatora na stronie
jak mogę wykonać te same obliczenia sortowania, ale od najnowszej daty do najstarszej? Obecnie jest od najstarszego do najnowszego. Odwrócenie znaku < nie wystarczy, a poza tym nie mam wystarczająco silnego zrozumienia, co robi. Myślę też, że to, co może się dziać, to to, że Excel automatycznie działa od góry do dołu, powodując trudności.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Bo,

Aby automatycznie posortować datę od najnowszej do najstarszej, wystarczy zmienić <= na >= w powyższym wzorze w następujący sposób:
=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,">="&$A$2:$A$15),0))
Po wstawieniu tej formuły pamiętaj, aby nacisnąć jednocześnie klawisze Ctrl + Shift + Enter, aby uzyskać poprawny wynik.
Proszę spróbować.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy oprócz zduplikowanych dat istnieje również sposób na uwzględnienie wielu kolumn danych podczas sortowania? Potrzebuję, aby zawierał wiele kolumn i posortował je razem z datami ważności.
Ten komentarz został zminimalizowany przez moderatora na stronie
Zrobiłem księgę czekową i działa, ale chcę dowiedzieć się, jak sprawić, by moje wpisy były zgodne z kolejnością dat. Każda pomoc byłaby mile widziana. Nadal uczę się Excela.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy istnieje konkretna formuła do przechowywania komórek po posortowanej dacie? Byłoby fajnie zorganizować według daty, ale zachować cały rząd informacji. Każda pomoc byłaby bardzo mile widziana.
Ten komentarz został zminimalizowany przez moderatora na stronie
Za pomocą kodu VBA skopiowałem i wkleiłem powyższe, ale chcę, aby daty w kolumnie F były wartościami, według których sortowane są dane. Zmieniłem wartości zakresu na F2 i F3500 (rozmiar arkusza kalkulacyjnego, w którym wiersz 1 to tytuły), ale nadal sortuje według dat w kolumnie A. Czy ktoś może mi pomóc?
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Ross,
Stosując kod do kolumny F, powinieneś zmienić niektóre odniesienia do swoich potrzeb, jak poniżej:
Prywatny Sub Worksheet_Change (ByVal Target As Range)
„Aktualizuj do” Extendoffice 20160606
On Error Resume Next
Jeśli Application.Intersect(Target, Application.Columns(6)) jest niczym, to zakończ Sub
Jeśli Target.Count > 1, to wyjdź z Sub
Zakres("F1").Sort Key1:=Range("F2"), Order1:=xlRosnąco, Nagłówek:=xlTak, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Proszę spróbować, mam nadzieję, że może ci to pomóc!
Ten komentarz został zminimalizowany przez moderatora na stronie
Ten kod VBA to czyste złoto! Dziękuję Ci! :-)
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj, co jeśli chcę to zrobić w wielu kolumnach lub nawet mieć nowy punkt początkowy w tej samej kolumnie? Czy po prostu robię przerwę i ponownie kopiuję kod VBA w tym samym oknie?
Dziękuję Ci.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, to świetne narzędzie. Dziękuję Ci. Jak mogę to zastosować do wielu kolumn na tej samej karcie? Czy mogę zastosować go do ponownego sortowania według daty w nowej komórce tej samej kolumny? Czy po prostu wkleiłbym kod VBA do tego samego okna?
Dziękuję Ci.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Noname9, jak się masz? Osiągnięcie celu za pomocą kodu VBA jest poza moim zasięgiem. Ale wiem, jak używać formuł do wykonania tego triku. Załóżmy, że mamy dwie kolumny dat, powiedzmy A2:B7. Jak posortować te daty do nowej kolumny? Proszę wykonać następujące czynności.
Najpierw musimy połączyć dwie kolumny dat w jedną. Skopiuj i wklej formułę =INDEX($A$2:$B$7,INT((ROWS(D$2:D2)-1)/2)+1,MOD(ROWS(D$2:D2)-1,2)+ 1) do komórki D2. I przeciągnij uchwyt wypełniania w dół, aby połączyć wszystkie daty. Zobacz zrzut ekranu 1.
Następnie posortujemy połączone daty. Skopiuj i wklej formułę =INDEX($D$2:$D$13,MATCH(ROWS($D$2:D2),COUNTIF($D$2:$D$13,"<="&$D$2:$D$13) ,0)) do F2. I przeciągnij uchwyt wypełniania w dół, aby posortować wszystkie daty. Zobacz zrzut ekranu 2.
Mam nadzieję, że to pomoże. Miłego dnia. Z poważaniem, Mandy
Nie ma tu jeszcze żadnych komentarzy

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL