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
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)))
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:
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.
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:
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:
Notes: Si vous souhaitez trier les nombres par ordre décroissant, veuillez saisir cette formule = sortnumsincell (A1,1).
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.
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:
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?
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement 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!