EXCEL : Traitement chaine de caracteres
Fermé
fanfi_du_94
-
9 oct. 2007 à 14:12
just1xpa2 Messages postés 1603 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 3 février 2013 - 15 oct. 2007 à 23:28
just1xpa2 Messages postés 1603 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 3 février 2013 - 15 oct. 2007 à 23:28
A voir également:
- EXCEL : Traitement chaine de caracteres
- Liste déroulante excel - Guide
- Formule excel - Guide
- Excel extraire chaine de caractère après un caractère ✓ - Forum Excel
- Caractères ascii - Guide
- Déplacer une colonne excel - Guide
35 réponses
xkristi
Messages postés
4264
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
19 août 2022
564
10 oct. 2007 à 19:15
10 oct. 2007 à 19:15
eh bien Eriiic bravo !
je ne fais pas mieux !
Bonne soirée !
je ne fais pas mieux !
Bonne soirée !
xkristi
Messages postés
4264
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
19 août 2022
564
9 oct. 2007 à 16:04
9 oct. 2007 à 16:04
Bonjour !
NB.SI(A2:A6;"titi")
n'oublie pas de mettre le statut résolu si c'est le cas
NB.SI(A2:A6;"titi")
n'oublie pas de mettre le statut résolu si c'est le cas
eriiic
Messages postés
24512
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2023
7 168
9 oct. 2007 à 21:45
9 oct. 2007 à 21:45
Bonjour,
Hummm, je crois que le texte est dans 1 cellule xkristi.
Si tu n'es pas limité en cellules tu peux utiliser CHERCHE(chaine;texte;n° départ) successivement en utilisant comme n°_départ le résultat précédent+1
ex:
A
1 TATA TOTO TATA TITI
2 =CHERCHE("TATA";A$1;1)
3 =CHERCHE("TATA";A$1;A2+1)
4 =CHERCHE("TATA";A$1;A3+1)
5 =CHERCHE("TATA";A$1;A4+1)
6 =CHERCHE("TATA";A$1;A5+1)
7 =CHERCHE("TATA";A$1;A6+1)
8 =CHERCHE("TATA";A$1;A7+1)
9 =NB(A2:A8)
résultat:
TATA TOTO TATA TITI
1
11
#VALEUR!
#VALEUR!
#VALEUR!
#VALEUR!
#VALEUR!
2
Reste à trouver la formule en 1 seule cellule ;-)
eric
Hummm, je crois que le texte est dans 1 cellule xkristi.
Si tu n'es pas limité en cellules tu peux utiliser CHERCHE(chaine;texte;n° départ) successivement en utilisant comme n°_départ le résultat précédent+1
ex:
A
1 TATA TOTO TATA TITI
2 =CHERCHE("TATA";A$1;1)
3 =CHERCHE("TATA";A$1;A2+1)
4 =CHERCHE("TATA";A$1;A3+1)
5 =CHERCHE("TATA";A$1;A4+1)
6 =CHERCHE("TATA";A$1;A5+1)
7 =CHERCHE("TATA";A$1;A6+1)
8 =CHERCHE("TATA";A$1;A7+1)
9 =NB(A2:A8)
résultat:
TATA TOTO TATA TITI
1
11
#VALEUR!
#VALEUR!
#VALEUR!
#VALEUR!
#VALEUR!
2
Reste à trouver la formule en 1 seule cellule ;-)
eric
xkristi
Messages postés
4264
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
19 août 2022
564
10 oct. 2007 à 17:22
10 oct. 2007 à 17:22
Salut !
Juste une variante de disposition avec la fonction d'Eriiic qui a bien trouvé ( pas avec Trouve et avec CHERCHE)
mais pas possible en une cellule
et reste le problème d'avoir un m^me mot 2 fois ou plus dans la chaine de caractères
TATA en A$1 peut être changé par un autre mot
en A$1 TATA et la somme en B2 ou ailleurs
TATA SOMME(B2:B6)
TITI TATA TOTO TUTU SI(ESTERREUR(CHERCHE(A$1;A2;1));0;1) mets = et recopie incrément…
TOTO TITU 0
TITU TOTO TATA TATA 1 ne compte que le premier TATA
TOTO TATA 1
REVONS UN PEU 0
Juste une variante de disposition avec la fonction d'Eriiic qui a bien trouvé ( pas avec Trouve et avec CHERCHE)
mais pas possible en une cellule
et reste le problème d'avoir un m^me mot 2 fois ou plus dans la chaine de caractères
TATA en A$1 peut être changé par un autre mot
en A$1 TATA et la somme en B2 ou ailleurs
TATA SOMME(B2:B6)
TITI TATA TOTO TUTU SI(ESTERREUR(CHERCHE(A$1;A2;1));0;1) mets = et recopie incrément…
TOTO TITU 0
TITU TOTO TATA TATA 1 ne compte que le premier TATA
TOTO TATA 1
REVONS UN PEU 0
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24512
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2023
7 168
10 oct. 2007 à 18:55
10 oct. 2007 à 18:55
Je ne l'avais pas précisé mais en A9, avec =NB(A2:A8), je retourne 2 qui est le total de TATA dans la chaine
eric
eric
eriiic
Messages postés
24512
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2023
7 168
10 oct. 2007 à 19:22
10 oct. 2007 à 19:22
Merci
Bonne soirée à toi aussi :-)
Bonne soirée à toi aussi :-)
Le Pingou
Messages postés
11538
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 mars 2023
1 334
10 oct. 2007 à 23:53
10 oct. 2007 à 23:53
Bonsoir,
Oui xkristi ,on peut un peu plus si on passe par une petite macro ...
Très la passe de Eriiic...
Oui xkristi ,on peut un peu plus si on passe par une petite macro ...
Très la passe de Eriiic...
Le Pingou
Messages postés
11538
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 mars 2023
1 334
11 oct. 2007 à 14:31
11 oct. 2007 à 14:31
Bonjour fanfi_du_94,
Il est aussi possible de passer par une macro, basé sur la formule d’eriiic, complétée par xkristi, que voici : (à copier et coller dans la partie Déclarations d'une feuille)
Sub AnalyseChaine()
' Macro enregistrée le 11.10.2007 par Jean-Pierre Purro
Dim filtre As String
Dim nbpas, seaFilt As Integer
On Error GoTo SORTERROR
seaFilt = 0
filtre = Cells(1, 2)
nbpas = 0
Do While WorksheetFunction.Search(filtre, Cells(1, 1), 1 + seaFilt) > 0
seaFilt = WorksheetFunction.Search(filtre, Cells(1, 1), 1 + seaFilt)
nbpas = nbpas + 1
Loop
SORTERROR:
Select Case Err.Number
Case 1004
If nbpas > 0 Then
Cells(1, 3).Value = nbpas
Else
Cells(1, 3).Value = nbpas
End If
Case Else
' autre situations à traiter ici...
End Select
End Sub
La chaine de donnée se trouve en A1. La chaine cherchée en B1. Le résultat en C1.
Il vous suffit de lancer la macro via Alt+F8 et clic sur AnalyseChaine
Il est aussi possible de passer par une macro, basé sur la formule d’eriiic, complétée par xkristi, que voici : (à copier et coller dans la partie Déclarations d'une feuille)
Sub AnalyseChaine()
' Macro enregistrée le 11.10.2007 par Jean-Pierre Purro
Dim filtre As String
Dim nbpas, seaFilt As Integer
On Error GoTo SORTERROR
seaFilt = 0
filtre = Cells(1, 2)
nbpas = 0
Do While WorksheetFunction.Search(filtre, Cells(1, 1), 1 + seaFilt) > 0
seaFilt = WorksheetFunction.Search(filtre, Cells(1, 1), 1 + seaFilt)
nbpas = nbpas + 1
Loop
SORTERROR:
Select Case Err.Number
Case 1004
If nbpas > 0 Then
Cells(1, 3).Value = nbpas
Else
Cells(1, 3).Value = nbpas
End If
Case Else
' autre situations à traiter ici...
End Select
End Sub
La chaine de donnée se trouve en A1. La chaine cherchée en B1. Le résultat en C1.
Il vous suffit de lancer la macro via Alt+F8 et clic sur AnalyseChaine
xkristi
Messages postés
4264
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
19 août 2022
564
11 oct. 2007 à 16:58
11 oct. 2007 à 16:58
Bonjour Le Pingou
Je ne sais si Fanfi du 94 va repasser chercher sa réponse ...
merci pour la macro , un jour ou l'autre cela peut servir...
mais habituellement pour moi , c'est plutôt SQL et TCD
Je ne sais si Fanfi du 94 va repasser chercher sa réponse ...
merci pour la macro , un jour ou l'autre cela peut servir...
mais habituellement pour moi , c'est plutôt SQL et TCD
Le Pingou
Messages postés
11538
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 mars 2023
1 334
11 oct. 2007 à 18:29
11 oct. 2007 à 18:29
Merci, de rein
eriiic
Messages postés
24512
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2023
7 168
13 oct. 2007 à 21:12
13 oct. 2007 à 21:12
Pour le fun et bien ça n'interesse plus grand monde ;-) en 1 cellule :
en A1: TATA TOTO TATA TITI
en A2: =(NBCAR(A1)-NBCAR(SUBSTITUE(A1;"TATA";)))/NBCAR("TATA") => 2
eric
en A1: TATA TOTO TATA TITI
en A2: =(NBCAR(A1)-NBCAR(SUBSTITUE(A1;"TATA";)))/NBCAR("TATA") => 2
eric
Le Pingou
Messages postés
11538
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 mars 2023
1 334
13 oct. 2007 à 21:33
13 oct. 2007 à 21:33
Bonsoir,
Merci Eric, c'est super et beaucoup plus simple que mon code.
Je vais ranger et mémoriser précieusement cette combinaison, sans oublier d'étudier son fonctionnement.
Merci Eric, c'est super et beaucoup plus simple que mon code.
Je vais ranger et mémoriser précieusement cette combinaison, sans oublier d'étudier son fonctionnement.
xkristi
Messages postés
4264
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
19 août 2022
564
13 oct. 2007 à 22:09
13 oct. 2007 à 22:09
Bravo Eriiic
ça m'étonne , pas devant le rugby ????????
Bonne soirée !
ça m'étonne , pas devant le rugby ????????
Bonne soirée !
eriiic
Messages postés
24512
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2023
7 168
13 oct. 2007 à 23:14
13 oct. 2007 à 23:14
Et non, pas devant le rugby, ma télé et moi on est en froid...
Bon, je vous rassure, j'ai trouvé l'inspiration ailleurs ;-)
Bonne soirée à tout le monde
Bon, je vous rassure, j'ai trouvé l'inspiration ailleurs ;-)
Bonne soirée à tout le monde
Le Pingou
Messages postés
11538
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 mars 2023
1 334
13 oct. 2007 à 23:37
13 oct. 2007 à 23:37
Bonsoir Eric,
Cette fonction "Substitue" gagne être bien connue et en combinaison avec "NbCar" cela devient de la mathématique élémentaire, un total moins la quantité restante et le tout divisé par le nombre de caractères cherché.
Encore bravo et merci de nous en faire profiter.
Cette fonction "Substitue" gagne être bien connue et en combinaison avec "NbCar" cela devient de la mathématique élémentaire, un total moins la quantité restante et le tout divisé par le nombre de caractères cherché.
Encore bravo et merci de nous en faire profiter.
just1xpa2
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
196
14 oct. 2007 à 00:49
14 oct. 2007 à 00:49
bonsoir pour le fun , ca m'interesse , eriiic le pinguoin , et xkristi
un petit plus pour ameliorer la formule, pour eviter une erreur en modifiant A2 , tu saisie en B1 TATA
en A1: TATA TOTO TATA TITI
en A2, a la place de cela =(NBCAR(A1)-NBCAR(SUBSTITUE(A1;"TATA";)))/NBCAR("TATA") => 2
tu formules ainsi A2==(NBCAR(A1)-NBCAR(SUBSTITUE(A1;B1)))/NBCAR(B1) le resultat est le même ,
mais si tu recherche le nombre de fois TA par exemple en B1 , tu tapes exemple TA tu trouve 4
cela evite de changer dans la formule tout simplement ce que tu veux trouver
mais je vous laisse la palme de la formule,
bonne soirée et encore bravo
un petit plus pour ameliorer la formule, pour eviter une erreur en modifiant A2 , tu saisie en B1 TATA
en A1: TATA TOTO TATA TITI
en A2, a la place de cela =(NBCAR(A1)-NBCAR(SUBSTITUE(A1;"TATA";)))/NBCAR("TATA") => 2
tu formules ainsi A2==(NBCAR(A1)-NBCAR(SUBSTITUE(A1;B1)))/NBCAR(B1) le resultat est le même ,
mais si tu recherche le nombre de fois TA par exemple en B1 , tu tapes exemple TA tu trouve 4
cela evite de changer dans la formule tout simplement ce que tu veux trouver
mais je vous laisse la palme de la formule,
bonne soirée et encore bravo
Le Pingou
Messages postés
11538
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 mars 2023
1 334
14 oct. 2007 à 14:29
14 oct. 2007 à 14:29
Bonjour,
Eh bien , désolé, j'ai essayer, votre proposition ne fonctionne pas.
Jean-Pierre
Eh bien , désolé, j'ai essayer, votre proposition ne fonctionne pas.
Jean-Pierre
just1xpa2
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
196
14 oct. 2007 à 17:22
14 oct. 2007 à 17:22
autant pour moi, et avec mes excuses la bonne formule est en A2 celle-ci
=(NBCAR(A1)-NBCAR(SUBSTITUE(A1;B1;)))/NBCAR(B1)
il manquait le point virgule derrière de premier B1 dans la formule
cela ne change pas que la palme vous revient,
=(NBCAR(A1)-NBCAR(SUBSTITUE(A1;B1;)))/NBCAR(B1)
il manquait le point virgule derrière de premier B1 dans la formule
cela ne change pas que la palme vous revient,
Le Pingou
Messages postés
11538
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 mars 2023
1 334
14 oct. 2007 à 17:32
14 oct. 2007 à 17:32
Bonjour,
J'ai tout contrôlé et j'ai fait un copier/coller votre formule et j'obtiens ceci #NOM? c'est inconpréhensile cette affaire. Avec l'autre formule de Eric c'est parfaitement correct.... j'enrage, c'est ou la bourde....
J'ai tout contrôlé et j'ai fait un copier/coller votre formule et j'obtiens ceci #NOM? c'est inconpréhensile cette affaire. Avec l'autre formule de Eric c'est parfaitement correct.... j'enrage, c'est ou la bourde....
just1xpa2
Messages postés
1603
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
3 février 2013
196
14 oct. 2007 à 17:50
14 oct. 2007 à 17:50
en A1tu ecris en minuscule comment ca marche
en A2 copie/coller =(NBCAR(A1)-NBCAR(SUBSTITUE(A1;B1;)))/NBCAR(B1)
en B1 tu ecrit " ca marche ", et en A2 tu trouvera "1"
j'arrete la mon explication si tu ne comprend pas j'y peux plus rien pour toi
en A2 copie/coller =(NBCAR(A1)-NBCAR(SUBSTITUE(A1;B1;)))/NBCAR(B1)
en B1 tu ecrit " ca marche ", et en A2 tu trouvera "1"
j'arrete la mon explication si tu ne comprend pas j'y peux plus rien pour toi