Recherche d'un ou plusieurs text
Résolu
Karim Ben Abdallah
-
Karim Ben Abdallah -
Karim Ben Abdallah -
Bonjour,
Comment faire une formule de recherche pour un ou plusieurs texte dans une cellule,
j'ai une base des composants, et je voulais les distinguer par famille
exp: si A1 contient "vis" ou "rondelle" => revoie "visserie"
si A1 contient "connecteur" ou "contact" => revoie "composant électrique"
Comment faire une formule de recherche pour un ou plusieurs texte dans une cellule,
j'ai une base des composants, et je voulais les distinguer par famille
exp: si A1 contient "vis" ou "rondelle" => revoie "visserie"
si A1 contient "connecteur" ou "contact" => revoie "composant électrique"
A voir également:
- Recherche d'un ou plusieurs text
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Sms to text - Télécharger - Sauvegarde
- Recherche photo - Guide
- Je recherche une chanson - Guide
4 réponses
Bonjour
voyez si vous pouvez adapter ce modèle et revenez si difficultés ou besoin de complément
https://www.cjoint.com/c/EDjoZG3sTN7
crdlmnt
voyez si vous pouvez adapter ce modèle et revenez si difficultés ou besoin de complément
https://www.cjoint.com/c/EDjoZG3sTN7
crdlmnt
Bonjour Karim, et bienvenue,
Quand on joint un fichier-test avec tous les cas, ou le fichier, c'est plus commode pour les intervenants.
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".
Cordialement.
Quand on joint un fichier-test avec tous les cas, ou le fichier, c'est plus commode pour les intervenants.
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".
Cordialement.
Bonjour
Exemple avec la cellule à tester en A1
=SI(SIERREUR(CHERCHE("vis";A1;1);0)+SIERREUR(CHERCHE("rondelle";A1;1);0)>0;"visserie";SI(SIERREUR(CHERCHE("contact";A1;1);0)+SIERREUR(CHERCHE("connecteur";A1;1);0)>0;"composant électrique"))
Cdlt
Exemple avec la cellule à tester en A1
=SI(SIERREUR(CHERCHE("vis";A1;1);0)+SIERREUR(CHERCHE("rondelle";A1;1);0)>0;"visserie";SI(SIERREUR(CHERCHE("contact";A1;1);0)+SIERREUR(CHERCHE("connecteur";A1;1);0)>0;"composant électrique"))
Cdlt
Bonjour Karim
Par formule :
=SI(OU(NB.SI(A1;"*vis*");NB.SI(A1;"*rondelle*"));"visserie";SI(OU(NB.SI(A1;"*contact*");NB.SI(A1;"*connecteur*"));"composant électrique";""))
Par contre si tu as une longue liste par famille et plusieurs familles la formule deviendra vite une usine à gaz. Dans ce cas il vaut mieux passer par une fonction personnalisée
Exemple :
Le code de la fonction se met dans un module dans l'éditeur VBA (ALT F11 pour ouvrir Editeur puis Insertion Module Copier et coller la macro)
Dans les lignes Tableau de la macro tu établis tes listes de mots par maille séparés par des /
Dans la boucle qui suit tu indiques à la fin du If le nom de la famille
Tu peux rajouter autant de lignes que necessaires pour de nouvelels familles
Ensuite la fonction s'utilise dans la plage Excel comme toute fonction Excel ex =famille(A1) renverra visserie s'il y a rondelle quelque part dans la chaine de caractères en A1 (rondelles xx, lot de rondelles etc)
Cdlmnt
Via
Par formule :
=SI(OU(NB.SI(A1;"*vis*");NB.SI(A1;"*rondelle*"));"visserie";SI(OU(NB.SI(A1;"*contact*");NB.SI(A1;"*connecteur*"));"composant électrique";""))
Par contre si tu as une longue liste par famille et plusieurs familles la formule deviendra vite une usine à gaz. Dans ce cas il vaut mieux passer par une fonction personnalisée
Exemple :
Function famille(plage As Range) chaine = plage.Value Dim Tableau() As String Dim i As Integer 'découpe la chaine en fonction des/ 'le résultat de la fonction Split est stocké dans un tableau Tableau = Split("vis/écrou/rondelle", "/") 'boucle sur le tableau pour voir si le mot existe dans la chaine For i = 0 To UBound(Tableau) ' s'il existe result prend le nom de la famille If InStr(chaine, Tableau(i)) > 0 Then result = "visserie" Next Tableau = Split("connecteur/contact/fusible", "/") For i = 0 To UBound(Tableau) If InStr(chaine, Tableau(i)) > 0 Then result = "composant électrique" Next Tableau = Split("tournevis/pince/marteau/clé", "/") For i = 0 To UBound(Tableau) If InStr(chaine, Tableau(i)) > 0 Then result = "outillage" Next famille = result End Function
Le code de la fonction se met dans un module dans l'éditeur VBA (ALT F11 pour ouvrir Editeur puis Insertion Module Copier et coller la macro)
Dans les lignes Tableau de la macro tu établis tes listes de mots par maille séparés par des /
Dans la boucle qui suit tu indiques à la fin du If le nom de la famille
Tu peux rajouter autant de lignes que necessaires pour de nouvelels familles
Ensuite la fonction s'utilise dans la plage Excel comme toute fonction Excel ex =famille(A1) renverra visserie s'il y a rondelle quelque part dans la chaine de caractères en A1 (rondelles xx, lot de rondelles etc)
Cdlmnt
Via
Toujours au top ! ta solution est meilleure que la mienne !
Bien Cdlmnt
Via
Et là, c'est moi qui te tire le chapeau
Bien amicalement
merci via, djidji, frenchie, merci pour vous tous..