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

Jak sortować liczby w komórce w programie Excel?

Sortowanie liczb na liście kolumn jest łatwe i powszechne, ale czy kiedykolwiek próbowałeś sortować liczby w jednej komórce? Być może nie ma dla ciebie dobrego sposobu, z wyjątkiem układania ich jeden po drugim, tutaj opowiem o tym, jak sortować liczby w komórkach w programie Excel.

Sortuj liczby w komórkach za pomocą formuły

Sortuj liczby w komórkach za pomocą funkcji zdefiniowanej przez użytkownika

Sortuj liczby oddzielone przecinkami w komórkach z kodem VBA


strzałka niebieski prawy bąbelek Sortuj liczby w komórkach za pomocą formuły

Aby posortować liczby w komórkach w arkuszu, możesz zastosować następującą długą formułę, wykonaj następujące czynności:

1. Obok danych wprowadź następującą formułę, w tym przykładzie wpiszę ją do komórki C1, zobacz zrzut ekranu:

=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-sortuj-liczby-w-komórkach-1

2. Następnie naciśnij Ctrl + Shift + Enter klucze razem, a następnie przeciągnij uchwyt wypełniania do zakresu, w którym chcesz zastosować tę formułę, a otrzymasz posortowane liczby od małych do dużych. Zobacz zrzut ekranu:

doc-sortuj-liczby-w-komórkach-1

Uwagi:

1. Jeśli cyfra liczby w komórce jest większa niż 15, ta formuła nie da prawidłowego wyniku.

2. Jeśli chcesz posortować liczby w porządku malejącym, możesz użyć tej formuły: =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. W powyższych wzorach A1 wskazuje komórkę zawierającą liczby, które chcesz posortować, możesz ją zmienić według potrzeb.


strzałka niebieski prawy bąbelek Sortuj liczby w komórkach za pomocą funkcji zdefiniowanej przez użytkownika

Ponieważ formuła ma pewne ograniczenia, możesz użyć następującego wzoru Funkcja zdefiniowana przez użytkownika do sortowania liczb w komórkach dłuższych niż 15 cyfr.

1. Przytrzymaj ALT + F11 klucze i otwiera plik Okno Microsoft Visual Basic for Applications.

2, Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: sortuj liczby w komórkach

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. Następnie zapisz i zamknij ten kod, wróć do arkusza roboczego i wprowadź tę formułę = sortnumsincell (A1) do pustej komórki obok danych, zobacz zrzut ekranu:

doc-sortuj-liczby-w-komórkach-1

4. Następnie przeciągnij uchwyt wypełniania do komórek, które chcesz zawrzeć w tej formule, a wszystkie liczby w komórkach zostały posortowane w kolejności rosnącej, jak pokazano na poniższym zrzucie ekranu:

doc-sortuj-liczby-w-komórkach-1

Uwagi: Jeśli chcesz posortować liczby w porządku malejącym, wprowadź tę formułę = sortnumsincell (A1,1).


strzałka niebieski prawy bąbelek Sortuj liczby oddzielone przecinkami w komórkach z kodem VBA

Jeśli twoje liczby są oddzielone określonymi znakami, takimi jak przecinek, średnik, kropka itp., Jak na poniższym zrzucie ekranu, jak możesz posortować je w komórkach? Teraz przedstawiam kod VBA, abyś mógł je sortować.

doc-sortuj-liczby-w-komórkach-1

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Okno Microsoft Visual Basic for Applications.

2, Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: numery sortowania są oddzielone przecinkami w komórkach

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. Następnie naciśnij F5 klucz do uruchomienia tego kodu, a następnie wybierz komórki zawierające liczby w wyskakującym okienku zachęty, zobacz zrzut ekranu:

doc-sortuj-liczby-w-komórkach-1

4. A następnie kliknij OKwszystkie liczby w komórkach zostały posortowane rosnąco w pierwotnym zakresie.

Uwagi: Możesz zmienić przecinek „,” na dowolne inne znaki, jak potrzebujesz w powyższym kodzie. Ten kod może tylko sortować dane rosnąco.


Podobne artykuły:

Jak sortować liczby z łącznikami w programie Excel?

Jak sortować dane według najczęstszej wartości w programie Excel?

Jak sortować adresy e-mail według domeny w programie Excel?

Jak sortować wiersze, aby umieścić puste komórki na górze w programie Excel?


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 (13)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
proszę pana, czy mógłby Pan najpierw pomóc posortować dane dla duplikatu, niezależnie od tego, czy jest on mały, czy duży Przykład 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Wielkie dzięki za pomoc
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, zastanawiałem się jak ten UDF, = sortnumsincell (A1,1), można ogólnie modyfikować, np. =sortnumwkomórce(A1,"",""",,1) gdzie pierwszy argument, A1, jest komórką docelową, drugim argumentem,"", jest ogranicznikiem, który może przyjmować dowolny znak, spację lub nic, z trzecim argumentem, "", inny lub ten sam ogranicznik, a czwarty argument, 1 lub 0, wskazując sortowanie rosnąco lub malejąco, z ciągiem wynikowym wyświetlanym, poprawnie posortowanym, w jednej komórce, z domyślnym ogranicznikiem takim samym jak oryginalny ciąg, chyba że określono w trzecim terminie. Chciałbym, aby działał zarówno na ciągach, jak i na numerach, a czasami drugi lub trzeci argument może być wysuwem wiersza, co zostałoby wprowadzone ręcznie za pomocą alt-enter. Byłbyś moim bohaterem miesiąca, gdybyś mógł to zrobić. Próbowałem, ale nie udało mi się. Dziękuję Ci.
Ten komentarz został zminimalizowany przez moderatora na stronie
Mam serię komórek z numerami oddzielonymi spacją, które chcę posortować. np. 8 4 5 1 6 3, które chcę posortować jako 1 3 4 5 6 8 Jakakolwiek pomoc jest mile widziana
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy istnieje sposób na sortowanie większej liczby liczb w tym samym czasie z jednej komórki? Na przykład, mam listę 50000 numerów aktywów, takich jak A1234,A1235... i muszę wyciągnąć 500 konkretnych numerów i muszę wyciągnąć 500 w tym czasie, aby dokonać zmian i zapisać.Dziękuję
Ten komentarz został zminimalizowany przez moderatora na stronie
trzeba posortować 84-12-74-26-98 dowolne zamówienie 12-26-74-84-98 lub 98-84-74-26-12 dziękuję
Ten komentarz został zminimalizowany przez moderatora na stronie
Jeśli CInt(Arr(xMin)) > CInt(Arr(j)) i to działa
Ten komentarz został zminimalizowany przez moderatora na stronie
chcę posortować sumę od 14000 do 20000 z różnych wierszy Przykład:- 2000,1500 jeden wiersz i tak wszystkie wiersze do ułożenia
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, kod VBA wydaje się wyprowadzać niepoprawnie, na przykład przed 13,50,47,7,39 i po 13-39-47-50-7. Jakieś pomysły dlaczego?
Ten komentarz został zminimalizowany przez moderatora na stronie
HOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak sortować tekst AZ w komórce w programie Excel?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, dziękuję za dobre sortowanie liczb oddzielonych przecinkami w komórkach z kodem VBA
Po prostu napotkałem jeden problem z kodem.
Kod nie może wykryć liczby trzycyfrowej. na przykład numery (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) po zastosowaniu kodu, nowa kolejność (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Masz jakieś rozwiązanie problemu?
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj, omer, może poniższy kod może ci pomóc, spróbuj:
Funkcja publiczna CellSort(r As Range) As String
Dim bry() tak długo, L tak długo, U tak długo
ch = r(1).Tekst
ary = Podział(ch, ",")
L = LBound(ary)
U = UBound(ary)
ReDim bry(L do U)
For i = LBound(ary) Do UBound(ary)
bry(i) = CLng(ary(i))
Dalej i
Zadzwoń do sortowania bąbelkowego (bry)
For i = LBound(bry) To UBound(bry)
ary(i) = CStr(bry(i))
Dalej i
Sortowanie komórek = Połącz (argument, ",")
End Function

Podrzędne sortowanie bąbelkowe (arr)
Dim strTemp jako wariant
Przyciemnij i tak długo
Dim j Jak długo
Dim lngMin tak długo
Dim LngMax Tak długo
lngMin = LBound(arr)
lngMax = UBound(arr)
Dla i = lngMin Do lngMax - 1
Dla j = i + 1 Do lngMax
Jeśli arr(i) > arr(j) Wtedy
strTemp = arr(i)
przyp(i) = przyp(j)
arr(j) = strTemp
End If
Następny j
Dalej i
End SubPo wstawieniu powyższego kodu zastosuj następującą formułę: =SortowanieKomórek(A1).I uzyskasz wynik, którego potrzebujesz.
Ten komentarz został zminimalizowany przez moderatora na stronie
Hola, se pueden ordenar letras pl una sola celda por orden alfabético? Jesteś doskonały dla komputerów Mac. Gracias
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

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