|
|
|
|
fanfi_du_94, le mardi 9 octobre 2007 à 14:12:25Configuration: Windows 2000 Internet Explorer 6.0
Bonjour !
NB.SI(A2:A6;"titi") n'oublie pas de mettre le statut résolu si c'est le cas xkristi La vie en plus ... |
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 |
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 xkristi La vie en plus ... |
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 |
eh bien Eriiic bravo !
je ne fais pas mieux ! Bonne soirée ! xkristi La vie en plus ... |
Merci
Bonne soirée à toi aussi :-) |
Bonsoir,
Oui xkristi ,on peut un peu plus si on passe par une petite macro ... Très la passe de Eriiic... Salutations. Jean-Pierre |
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 Salutations. Jean-Pierre |
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 xkristi La vie en plus ... |
Merci, de rein
Salutations.
Jean-Pierre |
|
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 |
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. Salutations. Jean-Pierre |
Bravo Eriiic
ça m'étonne , pas devant le rugby ???????? Bonne soirée ! xkristi La vie en plus ... |
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 |
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. Salutations. Jean-Pierre |
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 Quand la base est saine, ceux qui interviennent derrière toi sont heureux à l'inverse, ils te maudissent ... |
Bonjour,
Eh bien , désolé, j'ai essayer, votre proposition ne fonctionne pas. Jean-Pierre |
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, Quand la base est saine, ceux qui interviennent derrière toi sont heureux à l'inverse, ils te maudissent ... |
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.... Salutations. Jean-Pierre |