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

Comment trier les nombres dans une cellule dans Excel?

Il est facile et courant pour nous de trier les nombres dans une liste de colonnes, mais avez-vous déjà essayé de trier les nombres dans une seule cellule? Peut-être qu'il n'y a pas de bon moyen pour vous sauf de les organiser un par un, ici, je vais parler de la façon de trier les nombres dans les cellules dans Excel.

Trier les nombres dans les cellules avec une formule

Trier les nombres dans les cellules avec la fonction définie par l'utilisateur

Trier les nombres séparés par des virgules dans les cellules avec le code VBA


flèche bleue bulle droite Trier les nombres dans les cellules avec une formule

Pour trier les nombres dans les cellules d'une feuille de calcul, vous pouvez appliquer la formule longue suivante, procédez comme suit:

1. À côté de vos données, veuillez entrer la formule suivante, dans cet exemple, je vais la taper dans la cellule C1, voir capture d'écran:

=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-nombres-dans-cellules-1

2. Puis appuyez Ctrl + Maj + Entrée clés ensemble, puis faites glisser la poignée de recopie sur la plage à laquelle vous souhaitez appliquer cette formule, et vous obtiendrez que les nombres ont été triés de petit à grand. Voir la capture d'écran:

doc-sort-nombres-dans-cellules-1

Notes:

1. Si le chiffre du nombre est supérieur à 15 dans la cellule, cette formule n'obtiendra pas le résultat correct.

2. Si vous souhaitez trier les nombres par ordre décroissant, vous pouvez utiliser cette formule: =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. Dans les formules ci-dessus, A1 indique la cellule qui contient les nombres que vous souhaitez trier, vous pouvez la modifier selon vos besoins.


flèche bleue bulle droite Trier les nombres dans les cellules avec la fonction définie par l'utilisateur

Comme il existe certaines limitations de la formule, vous pouvez utiliser les éléments suivants Fonction définie par l'utilisateur pour trier les nombres dans les cellules de plus de 15 chiffres.

1. Maintenez le ALT + F11 clés, et il ouvre le Fenêtre Microsoft Visual Basic pour Applications.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: trier les nombres dans les cellules

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. Ensuite, enregistrez et fermez ce code, revenez à votre feuille de calcul et entrez cette formule = sortnumsincell (A1) dans une cellule vide à côté de vos données, voir capture d'écran:

doc-sort-nombres-dans-cellules-1

4. Et puis faites glisser la poignée de remplissage vers les cellules que vous souhaitez contenir cette formule, et tous les nombres dans les cellules ont été triés dans l'ordre croissant comme illustré ci-dessous:

doc-sort-nombres-dans-cellules-1

Notes: Si vous souhaitez trier les nombres par ordre décroissant, veuillez saisir cette formule = sortnumsincell (A1,1).


flèche bleue bulle droite Trier les nombres séparés par des virgules dans les cellules avec le code VBA

Si vos nombres sont séparés par certains caractères tels que la virgule, le point-virgule, le point, etc. comme la capture d'écran suivante, comment pouvez-vous les trier dans les cellules? Maintenant, je vous présente un code VBA pour que vous puissiez les trier.

doc-sort-nombres-dans-cellules-1

1. Maintenez le ALT + F11 clés pour ouvrir le Fenêtre Microsoft Visual Basic pour Applications.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: les numéros de tri sont séparés par des virgules dans les cellules

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. Puis appuyez F5 clé pour exécuter ce code, puis sélectionnez vos cellules qui contiennent les nombres dans la boîte de dialogue contextuelle, voir capture d'écran:

doc-sort-nombres-dans-cellules-1

4. Et puis cliquez OK, tous les nombres des cellules ont été triés par ordre croissant dans la plage d'origine.

Notes: Vous pouvez remplacer la virgule «,» par tout autre caractère selon vos besoins dans le code ci-dessus. Et ce code ne peut trier les données que par ordre croissant.


Articles Liés:

Comment trier les nombres avec des traits d'union dans Excel?

Comment trier les données par la valeur la plus fréquente dans Excel?

Comment trier l'adresse e-mail par domaine dans Excel?

Comment trier les lignes pour mettre les cellules vides en haut dans Excel?


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (13)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
monsieur, pourriez-vous s'il vous plaît aider à trier les données pour le doublon en premier, qu'il soit petit ou grand Exemple 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Merci beaucoup pour votre aide
Ce commentaire a été minimisé par le modérateur sur le site
Salut, je me demandais comment cet UDF, = sortnumsincell (A1,1), peut être modifié plus généralement, comme =numsortdanscellule(A1," "," ",,1) où le premier argument, A1, est la cellule cible, le deuxième argument,"", est un délimiteur qui peut prendre n'importe quel caractère, ou un espace, ou rien, avec un troisième argument, "", un délimiteur différent ou identique, et le quatrième argument, 1 ou 0, indiquant un tri croissant ou décroissant, avec la chaîne de résultat affichée, correctement triée, dans une cellule, avec un délimiteur par défaut identique à la chaîne d'origine, sauf indication contraire dans le troisième terme. J'aimerais que cela fonctionne à la fois sur la chaîne et sur le numérique, et parfois le deuxième ou le troisième argument peut être un saut de ligne, comme il serait saisi manuellement avec alt-enter. Tu serais mon héros du mois si tu pouvais faire ça. J'ai essayé mais j'ai lamentablement échoué. Merci.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai une série de cellules avec des nombres séparés par un espace que je veux trier. par exemple 8 4 5 1 6 3 que je veux trier comme 1 3 4 5 6 8 Toute aide appréciée
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un moyen de trier plus de nombres en même temps à partir d'une cellule ? Exemple, j'ai une liste de 50000 numéros d'actifs tels que A1234, A1235... et j'ai besoin d'extraire 500 numéros spécifiques et j'ai besoin d'extraire 500 à la fois pour faire des changements et économiser. Merci
Ce commentaire a été minimisé par le modérateur sur le site
besoin de trier 84-12-74-26-98 toute commande 12-26-74-84-98 ou 98-84-74-26-12 merci
Ce commentaire a été minimisé par le modérateur sur le site
Si CInt(Arr(xMin)) > CInt(Arr(j)) et ça marche
Ce commentaire a été minimisé par le modérateur sur le site
je veux trier un montant total de 14000 à 20000 à partir de différentes lignes Exemple: - 2000,1500 une ligne et comme ça tout le montant de la ligne à organiser
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, le code VBA semble sortir de manière incorrecte, par exemple avant 13,50,47,7,39 et après 13-39-47-50-7. Des idées pourquoi?
Ce commentaire a été minimisé par le modérateur sur le site
hOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
Ce commentaire a été minimisé par le modérateur sur le site
Comment trier le texte AZ dans une cellule dans Excel ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut merci pour bien pour trier les nombres séparés par des virgules dans les cellules avec le code VBA
Juste j'ai rencontré un problème avec le code.
Le code ne peut pas détecter un numéro à trois chiffres. par exemple les chiffres (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) après application du code, la nouvelle commande (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Avez-vous une solution au problème?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, omer, Peut-être que le code ci-dessous peut vous aider, veuillez essayer :
Fonction publique CellSort(r As Range) As String
Dim bry() As Long, L As Long, U As Long
ch = r(1).Texte
ary = Split(ch, ",")
L = LBound(aire)
U = UBound(aire)
Redim bry(L à U)
Pour i = LBound(ary) To UBound(ary)
bry(i) = CLng(ary(i))
Suivant i
Appelez BubbleSort(bry)
Pour i = LBound(bry) Vers UBound(bry)
ary(i) = CStr(bry(i))
Suivant i
CellSort = Join(ary, ",")
Fonction de fin

Sub BubbleSort(arr)
Dim strTemp comme variante
Dim i As Long
Dim j As Long
Dim lngMin aussi longtemps
Dim lngMax aussi longtemps
lngMin = LBound(arr)
lngMax = UBound(arr)
Pour i = lngMin à lngMax - 1
Pour j = i + 1 À lngMax
Si arr(i) > arr(j) Alors
strTemp = arr(i)
tab(i) = tab(j)
arr(j) = strTemp
Si fin
Suivant j
Suivant i
End SubAprès avoir inséré le code ci-dessus, veuillez appliquer cette formule : =Cellule(A1).Et vous obtiendrez le résultat dont vous avez besoin.
Ce commentaire a été minimisé par le modérateur sur le site
Hola, se pueden ordenar letras en una sola celda por orden alfabético ? Vous utilisez Excel pour Mac. Gracias
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés