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

Jak automaticky třídit datum, když je datum zadáno nebo změněno v aplikaci Excel? 

V aplikaci Excel Typ funkce vám pomůže seřadit datum podle vzestupného nebo sestupného pořadí. Ale není to dynamické, pokud jste datum setřídili a pak k němu přidali nové datum, budete jej muset setřídit znovu. Existují nějaké dobré a rychlé způsoby, jak automaticky třídit datum při každém zadání nového data v listu?

Datum automatického řazení, když je datum zadáno nebo změněno vzorcem

Datum automatického řazení při zadání nebo změně data pomocí kódu VBA


šipka modrá pravá bublina Datum automatického řazení, když je datum zadáno nebo změněno vzorcem

Například původní datum ve sloupci A, následující vzorec vám může pomoci automaticky seřadit datum nebo jakékoli jiné textové řetězce v novém pomocném sloupci na základě sloupce, který chcete seřadit, postupujte takto:

1. Zadejte tento vzorec:

=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,"<="&$A$2:$A$15),0)) do prázdné buňky vedle sloupce s datem, C2například a poté stiskněte Ctrl + Shift + Enter klávesy dohromady a získáte číselnou sekvenci a poté přetáhněte popisovač výplně dolů do buněk, které chcete použít, viz screenshot:

Poznámka: Ve výše uvedeném vzorci: A2: A15 je vaše původní časové období, které chcete automaticky třídit.

autosort dokumentů podle data 1

2. Poté čísla naformátujte jako formát data kliknutím Krátké rande z obecně rozevírací seznam pod Home karta, viz screenshot:

autosort dokumentů podle data 2

3. Pak byla pořadová čísla převedena do formátu data a původní datum bylo také seřazeno, viz screenshot:

autosort dokumentů podle data 3

4. Od této chvíle, když zadáváte nové datum nebo měníte datum ve sloupci A, datum ve sloupci C bude automaticky seřazeno vzestupně, viz screenshot:

autosort dokumentů podle data 4


šipka modrá pravá bublina Datum automatického řazení při zadání nebo změně data pomocí kódu VBA

Následující kód VBA vám pomůže automaticky seřadit datum v původním sloupci, když zadáte nové datum nebo změníte datum podle potřeby.

1. Přejděte na list, ve kterém chcete automaticky seřadit datum, když zadáte nebo změníte datum.

2. Klikněte pravým tlačítkem na kartu listu a vyberte Zobrazit kód z kontextové nabídky ve vyskakovacím okně Microsoft Visual Basic pro aplikace zkopírujte a vložte následující kód do mezery Modul okno, viz screenshot:

Kód VBA: automatické třídění při zadání nebo změně data:

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

autosort dokumentů podle data 6

Poznámka: Ve výše uvedeném kódu bude zadané datum automaticky tříděno ve sloupci A, můžete změnit A1 a A2 do svých vlastních buněk, jak potřebujete.

3. Od této chvíle, když zadáte datum do sloupce A, bude datum seřazeno vzestupně automaticky.


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (15)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Zapomněli jste zmínit, že vzorec je pole a musíte stisknout ctrl + Shift + enter. Naštěstí jste měli snímek obrazovky, jinak by vaše stránka byla plýtváním kyberprostoru
Tento komentář byl moderátorem webu minimalizován
Co když je v seznamu duplicitní datum? A chci, aby se zobrazila obě čísla.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Ryane,

Chcete-li seřadit datum s duplicitními, měli byste použít následující vzorec:

=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,""))

Nezapomeňte stisknout současně klávesy Shift + Ctrl + Enter.

Doufám, že vám to pomůže, děkuji!
Tento komentář byl moderátorem webu minimalizován
Skvělé :) Funguje dobře
Tento komentář byl moderátorem webu minimalizován
jak mohu provést stejný výpočet řazení, ale od nejnovějšího data po nejstarší? V současné době je to od nejstarších po nejnovější. Převrácení znaménka < nestačí a navíc nemám dostatečně silné pochopení toho, co dělá. Také si myslím, že to, co se může stát, je, že Excel automaticky funguje shora dolů a způsobuje potíže.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Bo,

Chcete-li automaticky seřadit datum od nejnovějšího po nejstarší, stačí změnit <= na >= ve výše uvedeném vzorci následovně:
=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,">="&$A$2:$A$15),0))
Po vložení tohoto vzorce nezapomeňte stisknout současně klávesy Ctrl + Shift + Enter, abyste získali správný výsledek.
Zkuste to prosím.
Tento komentář byl moderátorem webu minimalizován
Existuje kromě duplicitních dat také způsob, jak při řazení zahrnout více sloupců dat? Potřebuji, aby zahrnoval více sloupců a seřadil je všechny společně s daty vypršení platnosti.
Tento komentář byl moderátorem webu minimalizován
Udělal jsem registr šekové knížky a funguje to, ale chci přijít na to, jak zařídit, aby se moje záznamy dostaly do pořadí podle data. Jakákoli pomoc by byla oceněna. Excel se stále učím.
Tento komentář byl moderátorem webu minimalizován
Existuje konkrétní vzorec pro udržení buněk po seřazeném datu? Bylo by hezké uspořádat podle data, ale zachovat celý řádek informací. Jakákoli pomoc by byla velmi oceněna.
Tento komentář byl moderátorem webu minimalizován
S kódem VBA jsem zkopíroval a vložil výše uvedené, ale přeji si, aby data ve sloupci F byla hodnotami, podle kterých jsou data seřazena. Změnil jsem hodnoty rozsahu na F2 a F3500 (velikost tabulky, kde řádek 1 jsou názvy), ale stále se třídí podle dat ve sloupci A. Může mi prosím někdo pomoci?
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Rossi,
Při použití kódu na sloupec F byste měli změnit některé odkazy na vaši potřebu, jako je kód níže:
Soukromá dílčí tabulka_Změna (ByVal Target As Range)
'Aktualizovat Extendoffice 20160606
On Error Resume Next
Pokud Application.Intersect(Target, Application.Columns(6)) není nic, pak Exit Sub
Pokud Target.Count > 1, pak Exit Sub
Rozsah("F1"). Klíč řazení1:=Rozsah("F2"), Pořadí1:=xlVzestupně, Záhlaví:=xlAno, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Ten kód VBA je z čistého zlata! Děkuji! :-)
Tento komentář byl moderátorem webu minimalizován
Dobrý den, co když to chci udělat pro více sloupců nebo dokonce mít nový počáteční bod ve stejném sloupci? Mám udělat přestávku a znovu zkopírovat kód VBA ve stejném okně?
Děkuji.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, toto je skvělý nástroj. Děkuji. Jak to mohu použít na více sloupců na stejné kartě? Mohu jej použít k restartování řazení podle data v nové buňce stejného sloupce? Mohl bych jen znovu vložit kód VBA do stejného okna?
Děkuji.
Tento komentář byl moderátorem webu minimalizován
Ahoj Noname9, jak se máš? Dosažení vašeho cíle pomocí kódu VBA je mimo můj dosah. Ale vím, jak k tomu triku použít vzorce. Předpokládejme, že máme dva sloupce dat, řekněme A2:B7. Jak seřadit tato data do nového sloupce? Postupujte prosím následovně.
Nejprve musíme spojit dva sloupce dat do jednoho sloupce. Zkopírujte a vložte vzorec =INDEX($A$2:$B$7,INT((ROWS(D$2:D2)-1)/2)+1,MOD(ROWS(D$2:D2)-1,2)+ 1) do buňky D2. A přetažením úchytu výplně dolů spojíte všechna data. Podívejte se prosím na snímek obrazovky 1.
Poté sloučená data seřadíme. Zkopírujte a vložte vzorec =INDEX($D$2:$D$13,MATCH(ROWS($D$2:D2),COUNTIF($D$2:$D$13,"<="&$D$2:$D$13) ,0)) do F2. A přetažením úchytu výplně dolů seřadíte všechna data. Podívejte se prosím na snímek obrazovky 2.
Doufám, že to pomůže. Přeji hezký den. S pozdravem Mandy
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL