Comment extraire uniquement des nombres d'une chaîne de texte dans Excel ?
Lorsque vous travaillez avec Excel, vous pouvez rencontrer des situations où vous devez extraire des nombres de chaînes de texte. Que les nombres soient au début, à la fin ou intégrés dans le texte, Excel propose différentes méthodes pour y parvenir. Ce guide explorera diverses approches pour gérer différents scénarios, y compris l'extraction de nombres décimaux, de nombres à des positions spécifiques, ou de nombres situés au début ou à la fin d'une chaîne.
Extraire un nombre de n'importe quelle position dans une chaîne de texte
Extraire uniquement un nombre décimal d'une chaîne de texte
Extraire un nombre de la fin d'une chaîne de texte
Extraire un nombre du début d'une chaîne de texte
Extraire un nombre de n'importe quelle position dans une chaîne de texte
Pour vous aider à extraire des nombres de n'importe quelle position dans une chaîne de texte, nous allons introduire plusieurs méthodes pratiques et efficaces.
♦ Extraire un nombre de n'importe quelle position dans une chaîne de texte avec des formules
Les formules suivantes peuvent vous aider à extraire les nombres des chaînes de texte, procédez comme suit :
Sélectionnez une cellule vide où vous souhaitez afficher le nombre extrait, puis saisissez l'une des formules ci-dessous, puis faites glisser la formule vers d'autres cellules. Voir capture d'écran :
● Toutes les versions d'Excel :
=IF(SUM(LEN(A2)-LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2,ROW(INDIRECT("$1:$"&LEN(A2))),1))* ROW(INDIRECT("$1:$"&LEN(A2))),0), ROW(INDIRECT("$1:$"&LEN(A2))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A2)))/10),"")
● Excel 365 ou Excel 2021 et versions ultérieures :
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
♦ Extraire un nombre de n'importe quelle position dans une chaîne de texte avec des formules
Kutools pour Excel offre une méthode rapide et conviviale pour extraire des nombres de chaînes de texte sans avoir à mémoriser aucune formule, vous aidant ainsi à gagner du temps et à rationaliser votre flux de travail. Voici comment faire.
- Cliquez sur Kutools > Texte > Extraire le texte, voir capture d'écran :
- Dans la Extraire le texte boîte de dialogue, effectuez les opérations suivantes :
(1.) Sélectionnez la liste de données dont vous souhaitez extraire les nombres ;
(2.) Choisissez Extraire les nombres option ;
(3.) Cochez Insérer en tant que formule option si nécessaire ;
(4.) Enfin, cliquez sur OK bouton.
- Dans la boîte de dialogue qui suit, sélectionnez une cellule pour afficher le résultat extrait, voir capture d'écran :
- Cliquez sur OK, tous les nombres de chaque cellule sont extraits en une seule fois. Voir capture d'écran :
♦ Extraire un nombre de n'importe quelle position dans une chaîne de texte avec du code VBA
Voici un code VBA qui peut également vous aider, procédez comme suit :
- Maintenez les touches Alt + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
- Cliquez sur Insérer > Module, et collez le code suivant dans la fenêtre Module Fenêtre.
Code VBA : Extraire uniquement des nombres d'une chaîne de texte :Sub ExtrNumbersFromRange() Dim xRg As Range Dim xDRg As Range Dim xRRg As Range Dim nCellLength As Integer Dim xNumber As Integer Dim strNumber As String Dim xTitleId As String Dim xI As Integer xTitleId = "KutoolsforExcel" Set xDRg = Application.InputBox("Please select text strings:", xTitleId, "", Type:=8) If TypeName(xDRg) = "Nothing" Then Exit Sub Set xRRg = Application.InputBox("Please select output cell:", xTitleId, "", Type:=8) If TypeName(xRRg) = "Nothing" Then Exit Sub xI = 0 strNumber = "" For Each xRg In xDRg xI = xI + 1 nCellLength = Len(xRg) For xNumber = 1 To nCellLength If IsNumeric(Mid(xRg, xNumber, 1)) Then strNumber = strNumber & Mid(xRg, xNumber, 1) End If Next xNumber xRRg.Item(xI) = strNumber strNumber = "" Next xRg End Sub
- Puis, appuyez sur la touche F5 pour exécuter ce code, et une boîte de dialogue s'affiche pour vous rappeler de sélectionner la plage de texte que vous souhaitez utiliser, voir capture d'écran :
- Ensuite, cliquez sur OK, une autre boîte de dialogue apparaît, veuillez sélectionner une cellule pour afficher le résultat, voir capture d'écran :
- Enfin, cliquez sur le bouton OK, et tous les nombres des cellules sélectionnées ont été extraits en une seule fois.
Extraire uniquement un nombre décimal d'une chaîne de texte
Si les chaînes de texte incluent des nombres décimaux dans votre feuille de calcul, comment pourriez-vous extraire uniquement les nombres décimaux des chaînes de texte ?
La formule ci-dessous peut vous aider à extraire rapidement et facilement les nombres décimaux des chaînes de texte.
Copiez et collez l'une des formules suivantes dans une cellule vide, puis faites glisser la poignée de remplissage vers le bas pour remplir les cellules que vous souhaitez contenir cette formule, tous les nombres décimaux sont extraits des chaînes de texte.
● Toutes les versions d'Excel :
=LOOKUP(9.9E+307,--LEFT(MID(A2,MIN(FIND({1,2,3,4,5,6,7,8,9,0}, $A2&"1023456789")),999),ROW(INDIRECT("1:999"))))
● Excel 365 :
=REGEXEXTRACT(A2,"[\d.]+")
Extraire un nombre de la fin d'une chaîne de texte
Lorsque vous travaillez avec des chaînes de texte dans Excel, vous devrez peut-être extraire des nombres situés à la fin de la chaîne. Pour isoler les nombres à la fin d'une chaîne, la formule suivante peut vous aider.
Copiez et collez la formule ci-dessous dans une cellule vide, appuyez sur Ctrl + Shift + Enter pour obtenir le premier résultat :
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
Ensuite, faites glisser la poignée de remplissage vers le bas pour appliquer cette formule à d'autres cellules. Cette formule extrait exclusivement les nombres de la fin de la chaîne de texte, ignorant tout nombre apparaissant au début ou au milieu. Voir capture d'écran :
Extraire un nombre du début d'une chaîne de texte
Pour extraire des nombres du début d'une chaîne de texte, utilisez la formule suivante.
Copiez et collez la formule ci-dessous dans une cellule vide, appuyez sur Ctrl + Shift + Enter pour obtenir le premier résultat :
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
Ensuite, faites glisser la poignée de remplissage vers le bas pour appliquer cette formule à d'autres cellules, seul le nombre initial est extrait. Voir capture d'écran :
L'extraction de nombres à partir de chaînes de texte est une tâche courante dans Excel, et il existe plusieurs méthodes efficaces pour y parvenir, selon vos besoins et la complexité de vos données. Si vous êtes intéressé par l'exploration de plus d'astuces et de conseils Excel, notre site Web propose des milliers de tutoriels.
Articles connexes :
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 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
- Activez la modification 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é de50 %, et réduit des centaines de clics de souris pour vous chaque jour !