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

Jak třídit čísla v buňce v aplikaci Excel?

Je pro nás snadné a běžné třídit čísla v seznamu sloupců, ale pokusili jste se někdy řadit čísla v jedné buňce? Možná pro vás neexistuje žádný dobrý způsob, kromě jejich uspořádání po jednom, zde budu mluvit o tom, jak třídit čísla v buňkách v aplikaci Excel.

Seřadit čísla v buňkách pomocí vzorce

Seřadit čísla v buňkách pomocí funkce definované uživatelem

Seřadit čísla oddělená čárkami v buňkách pomocí kódu VBA


šipka modrá pravá bublina Seřadit čísla v buňkách pomocí vzorce

Chcete-li seřadit čísla v buňkách v listu, můžete použít následující dlouhý vzorec, postupujte takto:

1. Vedle vašich dat zadejte následující vzorec, v tomto příkladu jej napíšu do buňky C1, viz screenshot:

=TEXT(SUM(SMALL(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))

doc-sort-numbers-in-cells-1

2. Pak stiskněte tlačítko Ctrl + Shift + Enter klávesy, poté přetáhněte úchyt výplně do rozsahu, na který chcete použít tento vzorec, a získáte čísla, která byla seřazena od malých po velká. Viz screenshot:

doc-sort-numbers-in-cells-1

Poznámky:

1. Pokud je číslice čísla v buňce větší než 15, nebude tento vzorec obsahovat správný výsledek.

2. Chcete-li seřadit čísla sestupně, můžete použít tento vzorec: =TEXT(SUM(LARGE(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1))).

3. Ve výše uvedených vzorcích označuje A1 buňku obsahující čísla, která chcete seřadit, můžete ji podle potřeby změnit.


šipka modrá pravá bublina Seřadit čísla v buňkách pomocí funkce definované uživatelem

Vzhledem k tomu, že vzorec má určitá omezení, můžete použít následující Uživatelem definovaná funkce třídit čísla v buňkách delších než 15 číslic.

1. Podržte ALT + F11 klíče a otevře se Okno Microsoft Visual Basic pro aplikace.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Řazení čísel v buňkách

Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'Update 20140717
Dim xOutput As String
For i = 0 To 9
  For j = 1 To UBound(VBA.Split(pNum, i))
    xOutput = IIf(pOrder, i & xOutput, xOutput & i)
  Next
Next
SortNumsInCell = xOutput
End Function

3. Poté tento kód uložte a zavřete, vraťte se do svého listu a zadejte tento vzorec = sortnumsincell (A1) do prázdné buňky vedle vašich dat, viz screenshot:

doc-sort-numbers-in-cells-1

4. A pak přetáhněte popisovač výplně do buněk, které chcete obsahovat tento vzorec, a všechna čísla v buňkách byla seřazeny ve vzestupném pořadí, jak je znázorněno na následujícím obrázku:

doc-sort-numbers-in-cells-1

Poznámka: Chcete-li seřadit čísla sestupně, zadejte tento vzorec = sortnumsincell (A1,1).


šipka modrá pravá bublina Seřadit čísla oddělená čárkami v buňkách pomocí kódu VBA

Pokud jsou vaše čísla oddělena určitými znaky, jako je čárka, středník, tečka atd., Jak vidíte na následujícím snímku obrazovky, jak je můžete seřadit v buňkách? Nyní vám představuji kód VBA, abyste je mohli třídit.

doc-sort-numbers-in-cells-1

1. Podržte ALT + F11 klávesy pro otevření Okno Microsoft Visual Basic pro aplikace.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Čísla řazení jsou v buňkách oddělena čárkami

Sub SortNumsInRange()
'Update 20140717
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng
    Arr = VBA.Split(Rng.Value, ",")
    For i = 0 To UBound(Arr)
        xMin = i
        For j = i + 1 To UBound(Arr)
            If Arr(xMin) > Arr(j) Then
                xMin = j
            End If
        Next j
        If xMin <> i Then
            temp = Arr(i)
            Arr(i) = Arr(xMin)
            Arr(xMin) = temp
        End If
    Next i
    Rng.Value = VBA.Join(Arr, ",")
Next
End Sub

3. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a poté vyberte buňky, které obsahují čísla v rozevíracím okně s výzvou, viz screenshot:

doc-sort-numbers-in-cells-1

4. A pak klikněte na tlačítko OK, všechna čísla v buňkách byla seřazena vzestupně v původním rozsahu.

Poznámka: Ve výše uvedeném kódu můžete čárku „,“ změnit na jakékoli jiné znaky, jak potřebujete. A tento kód může pouze třídit data vzestupně.


Související články:

Jak třídit čísla s pomlčkami v aplikaci Excel?

Jak seřadit data podle nejčastější hodnoty v aplikaci Excel?

Jak třídit e-mailovou adresu podle domény v aplikaci Excel?

Jak řadit řádky tak, aby prázdné buňky byly nahoře v aplikaci Excel?


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 (13)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
pane, mohl byste prosím pomoci nejprve seřadit data pro duplikát, zda je malý nebo velký Příklad 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Díky moc za vaši pomoc
Tento komentář byl moderátorem webu minimalizován
Ahoj, zajímalo by mě, jak tento UDF, = sortnumsincell (A1,1), lze upravit obecněji, např =sortnumsincell(A1," "," ",,1) kde první argument, A1, je cílová buňka, druhý argument,"", je oddělovač, který může mít jakýkoli znak, mezeru nebo nic, s třetím argumentem, "", jiný nebo stejný oddělovač a čtvrtý argument, 1 nebo 0, označující vzestupné nebo sestupné řazení, přičemž výsledný řetězec se zobrazuje správně seřazený v rámci jedné buňky, přičemž výchozí oddělovač je stejný jako původní řetězec, pokud není uvedeno ve třetím termínu. Chtěl bych, aby to fungovalo jak na řetězcích, tak na numerických a někdy může být druhým nebo třetím argumentem posun řádku, jak by se ručně zadával pomocí alt-enter. Byl bys mým hrdinou měsíce, kdybys to dokázal. Snažil jsem se, ale žalostně selhal. Děkuji.
Tento komentář byl moderátorem webu minimalizován
Mám řadu buněk s čísly oddělenými mezerou, kterou chci seřadit. např. 8 4 5 1 6 3, které chci seřadit jako 1 3 4 5 6 8 Ocením jakoukoli pomoc
Tento komentář byl moderátorem webu minimalizován
Existuje nějaký způsob, jak seřadit více čísel současně z jedné buňky? Příklad, mám seznam 50000 1234 čísel aktiv, jako jsou A1235, A500... a potřebuji vytáhnout 500 konkrétních čísel a zároveň potřebuji vytáhnout XNUMX, abych provedl změnu a uložil. Děkuji
Tento komentář byl moderátorem webu minimalizován
potřebuji seřadit 84-12-74-26-98 jakoukoli objednávku 12-26-74-84-98 nebo 98-84-74-26-12 děkuji
Tento komentář byl moderátorem webu minimalizován
Pokud CInt(Arr(xMin)) > CInt(Arr(j)) a funguje to
Tento komentář byl moderátorem webu minimalizován
chci seřadit celkovou částku 14000 až 20000 z různých řádků Příklad:- 2000,1500 jeden řádek a takto uspořádat celou částku řádku
Tento komentář byl moderátorem webu minimalizován
Ahoj, zdá se, že kód VBA vychází nesprávně, například před 13,50,47,7,39 a po 13-39-47-50-7. Nějaké nápady proč?
Tento komentář byl moderátorem webu minimalizován
hOLA, MI PROBLÉM ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
Tento komentář byl moderátorem webu minimalizován
Jak seřadit AZ text v buňce v Excelu?
Tento komentář byl moderátorem webu minimalizován
Ahoj, díky za pěkné řazení čísel oddělených čárkami v buňkách s kódem VBA
Jen jsem čelil jednomu problému s kódem.
Kód nedokáže rozpoznat třímístné číslo. například čísla (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) po použití kódu, nové pořadí (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Máte nějaké řešení problému?
Tento komentář byl moderátorem webu minimalizován
Dobrý den, omere, může vám pomoci níže uvedený kód, zkuste prosím:
Veřejná funkce CellSort(r As Range) jako řetězec
Dim bry() As Long, L As Long, U As Long
ch = r(1).Text
ary = Split(ch, ",")
L = LBound(ary)
U = UBound(ary)
ReDim bry (L až U)
Pro i = LBound(ary) To UBound(ary)
bry(i) = CLng(ary(i))
Příště já
Zavolejte BubbleSort (bry)
Pro i = LBound(bry) To UBound(bry)
ary(i) = CStr(bry(i))
Příště já
CellSort = Join(ary, ",")
End Function

Sub BubbleSort(arr)
Dim strTemp jako varianta
Dim i tak dlouho
Dim j Jak dlouho
Dim lngMin As Long
Dim LngMax As Long
lngMin = LBound(arr)
lngMax = UBound(arr)
Pro i = lngMin To lngMax - 1
Pro j = i + 1 To lngMax
Jestliže arr(i) > arr(j) Potom
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
Další j
Příště já
End SubPo vložení výše uvedeného kódu použijte tento vzorec: =CellSort(A1).A dostanete výsledek, který potřebujete.
Tento komentář byl moderátorem webu minimalizován
Hola, se pueden ordenar letras en una sola celda por orden alfabético? Používáte excel pro Mac. Gracias
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