Recherche d'une partie de texte colonne A dans colonne B

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
s
spoiiiiing
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 26 octobre 2016
Version d'Excel : 2013 FR

Message par spoiiiiing » 26 octobre 2016, 16:16

Bonjour à tous,

C'est mon premier post sur ce forum qui m'a toujours permis, jusqu'à aujourd’hui, de trouver des solutions sans jamais faire appel à la communauté, mais aujourd'hui je bloque !

je m'explique :

j'ai une colonne A dans laquelle j'ai par exemple en A1, A2, A3..... :

rouge
vert
orange
jaune
....liste non exhaustive (sans la couleur bleu par exemple)

Dans une colonne B j'ai en B1, B2, B3, ....... :

voiture jaune
velo vert
avion vert
voiture orange
scooter bleu
.....liste non exhaustive

je souhaiterai, dans la colonne C, afficher uniquement la chaîne de caractère de la colonne A si elle a été trouvée DANS UNE PARTIE ou DANS LA TOTALITé d'un ou plusieurs textes de la colonne B.

le résultat s'afficherait sous la forme (dans la colonne C ):

colonne B / colonne C
--------------------------
voiture jaune / jaune
velo vert / vert
avion vert / vert
voiture orange / orange
scooter bleu / FAUX

existe t-il une formule Excel pour arriver à mes fins svp ?

Merci pour votre aide précieuse.

Alexandre.
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 26 octobre 2016, 16:43

Bonjour,

Une piste mais avec une fonction perso (VBA). A mettre dans un module standard :
Function COULEUR(CouleurCherchee As String, PlageRecherche As Range) As String
    
    Dim Cel As Range
    
    Application.Volatile
    
    For Each Cel In PlageRecherche
    
        If InStr(CouleurCherchee, Cel.Value) <> 0 Then
        
            COULEUR = Cel.Value
            Exit For
            
        End If
            
    Next Cel
    
    If COULEUR = "" Then COULEUR = "FAUX"
    
End Function
Utiliser de la manière suivante :
=COULEUR(B1;$A$1:$A$4)
Pour le test, A1:A4 étant la plage de couleur et B1 la cellule contenant par exemple voiture jaune, il te suffit de tirer vers le bas
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
s
spoiiiiing
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 26 octobre 2016
Version d'Excel : 2013 FR

Message par spoiiiiing » 26 octobre 2016, 17:01

merci beaucoup pour la réponse.

Je suis profondément désolé, j'avais pris des exemples de couleurs pour simplifier mon explication et mon besoin sans jamais soupconner qu'il existait une fonction "COULEUR"

Mais en fait l'idée c'est de trouver le nom d'une gamme d'imprimante dans le nom du modèle d'imprimante.

en colonne A

EPSON SX
HP photosmart
EPSON workforce
liste non exhaustive (sans CANON BJ F par exemple)
.....

en colonne B

EPSON SX 125
HP photosmart B109
CANON BJ F 800

résultat en colonne C

colonne B / colonne C
EPSON SX 125 / EPSON SX
HP photosmart B109 / HP photosmart
CANON BJ F 800 / FAUX

Encore merci
a
astragor
Membre habitué
Membre habitué
Messages : 107
Appréciations reçues : 2
Inscrit le : 26 janvier 2016
Version d'Excel : 2016

Message par astragor » 26 octobre 2016, 17:11

La fonction COULEUR n'existe pas, c'est une foncton VBA personnalisée. Tu peux la renomer MARQUE ou BANANE si tu veux ou simplement CH_S_CHAINE pour avoir un nom plus générique, ca marchera aussi bien
s
spoiiiiing
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 26 octobre 2016
Version d'Excel : 2013 FR

Message par spoiiiiing » 26 octobre 2016, 17:20

désolé pour mon ignorance donc :-)

je ne sais absolument pas utiliser une fonction VBA, mais je vais chercher sur le web.

merci beaucoup pour votre aide
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 26 octobre 2016, 17:24

Alors comme ça, ça te convient mieux ? ;;)
Function IMPRIMANTE(ImprimanteCherchee As String, PlageRecherche As Range) As String
    
    Dim Cel As Range
    
    Application.Volatile
    
    For Each Cel In PlageRecherche
    
        If InStr(ImprimanteCherchee, Cel.Value) <> 0 Then
        
            IMPRIMANTE = Cel.Value
            Exit For
            
        End If
            
    Next Cel
    
    If IMPRIMANTE = "" Then IMPRIMANTE = "FAUX"
    
End Function
A utiliser comme l'autre :
=IMPRIMANTE(B1;$A$1:$A$4)
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
s
spoiiiiing
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 26 octobre 2016
Version d'Excel : 2013 FR

Message par spoiiiiing » 26 octobre 2016, 17:26

oui mais j'ai honte :-)

oupsss.

Encore merci
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 26 octobre 2016, 17:50

C'est pas grave, on ne peut pas tout savoir sinon, ce forum n'existerait pas :D
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message