Rechercher plusieurs termes sur une ligne

Bonjour,

Je suis actuellement entrain de finir mon tableaux de données pour ma thèse mais je bloque sur la fin.

Je dois rechercher la présence d'au moins un médicament sur chaque ligne en me basant sur une autre feuille excel comportant l'ensemble des médicaments à rechercher.

J'ai essayé avec la fonction recherchev mais cela ne fonctionne pas.

Je pourrais le faire en utilisant NB.SI répété plusieurs fois mais comme il y a plus de 2000 références ce serai trop long.

L'un de vous aurait-il une solution miracle, ça me sauverai vraiment ?

Chaque ligne s'étend sur 50 colonnes et je dois rechercher jusqu'a 2500 références.

Je vous remercie d'avance pour votre aide précieuse !

Je vous en pièce jointe mon tableau de données comportant plusieurs feuilles.

Je souhaite rechercher la présence d'au moins un médicament parmis l'ensemble des médicaments de la feuille anti diabétiques oraux sur la ligne 4 de BA4 à EV4 que j'incrémenterai ensuite au ligne suivante.

je vous remercie de votre aide !

Bonjour

jeanmairep a écrit :

Je vous en pièce jointe mon tableau de données

Tu oublies ton tableau... on ne peut rien faire !

Bye !

Je m'excuse je n'avais pas vu que le fichier était trop gros.

J'ai créé un lien ci-joint.

je suis désolé pour ce temps perdu

J’avoue ne pas comprendre ce qu’il faut rechercher …

Tu écris :

Je dois rechercher la présence d'au moins un médicament sur chaque ligne …

…sur chaque ligne de quelle feuille ?

…en me basant sur une autre feuille excel comportant l'ensemble des médicaments à rechercher

Quelle est cette autre feuille ?

Pourrais-tu donner quelques exemples de ce qu’il faut faire et trouver ?

Bye !

Je vous donne plus de précision :

je dois rechercher la présence d'au moins un médicaments présent sur la feuille Hypolipémiants, sur la ligne 4 de la feuille fichier données thèse de BA4 à EV4. Je souhaiterai que le résultats apparaissent dans la case EW4 sous forme : 0 si pas de traitement retrouvé ou 1 si au moins un traitement retrouvé.

Par exemple si Simvastatine ou Tahor présent sur BA4 à EV4, retrouvé 1 en EW4 mais si aucun des traitements de la feuille hypolipémiants n'est présent, retrouvé 0 en EW4.

Est ce que cela est assez clair ?

jeanmairep a écrit :

Est ce que cela est assez clair ?

Hélas non !

Je vois que la tradition des médecins dont l’écriture est difficile à comprendre se perpétue quand ils troquent le stylo par un clavier.

Désolé, mais je passe la main à plus perspicace que moi.

Bye !

je tente une dernière explication :

- je souhaite retrouver la présence/ou non d'au moins un des termes de la colonne B sur la feuille hypolipémiant,

sur la plage BA4,EV4 ?

- le résultat serait alors dans la case EW4 avec : 0 si aucun des terme retrouvé / 1 si au moins un terme présent.

Si ca ne vous aide pas, j'arrête la...

Bonjour,

tu as conscience que la plage que tu indiques ne contient que des nombres et des valeurs d'erreur ?

Ca n'aide pas à la compréhension. Il faut fournir un fichier de qq lignes (pas besoin de 5 Mo) et des situations qui permettent de travailler.

Ceci dit un essai de fonction personnalisée.

Alt+F11 pour aller dans VBE

Clic-droit sur le projet du classeur à gauche et 'Inserer un module'

Dans ce module copier-coller ces lignes :

Function Medok(feuille As String, plage As Range) As Long
    Dim c1 As Range, c2 As Range, datas, i As Long
    Medok = 0
    datas = plage.Value
    For i = 2 To UBound(datas, 2) Step 2
        If Not IsError(datas(1, i)) Then
            If datas(1, i) <> "" Then
                Set c2 = Sheets(feuille).Columns(2).Find(datas(1, i), LookIn:=xlValues, lookat:=xlWhole)
                If Not c2 Is Nothing Then Medok = 1: Exit For
            End If
        End If
    Next i
End Function

Sur la feuille en EW4 :

=Medok("Hypolipémiant"; BA4:EV4)

J'ai essayé de la faire rapide mais il y a beaucoup de recherches et pour 4000 lignes il faudra un peu de temps.

Si tu dois te servir de la fonction pour autre chose je ne teste que une cellule /2 à partir de la 2nde.

Il faudra modifier For i = 2 To UBound(datas, 2) Step 2 si tu veux tester toutes les cellules de la plage.

eric

C'est toujours pareil, à l'écrit on est toujours perdu.

je fais une dernière tentative après je vous laisse tranquille :

  • parmis l'ensemble des termes de la plage BA4 à EV4 sur la feuille "fichier données thèse"
  • je souhaite rechercher la présence d'au moins un médicament parmis l'ensemble des médicaments de la colonne B de la feuille "Hypolipémiants"
  • si au moins un des médicaments est présent sur cette ligne, je souhaite retrouver le résultat "1" en EW4
  • si aucun des médicaments est présent sur cette ligne, je souhaite retrouver le résultat "0" en EW4

c'était ma dernière chance


Merci beaucoup pour votre réponse rapide, je n'avais pas pu y accéder donc désolé pour le denrier post !

Je vais essayer d'utiliser ces conseils, ca devrait me sauver !

Pas bon à l'écrit, mais à la lecture non plus

Lève un peu le nez du guidon, essaie ma proposition au-dessus et dit si c'est bon ou pas.

Je me permet d'abuser un peu car vous êtes littéralement entrain de me sauver ma thèse !

Si je souhaite faire la même chose avec les traitement présents dans la colonne B sur la feuille "anti-HTA" puis ceux dans la colonne B sur la feuille "anti diabétique oraux", toujours en recherchant sur la même plage BA4 à EV4, quel serait les formules ?

Je m'excuse vraiment d'insister mais votre formule marche parfaitement, hors cela fait 5 jours que j'essaye de trouver une solution en vain !

J'avais prévu.

Dans la formule sur la feuille =Medok("Hypolipémiant"; BA4:EV4)

tu remplaces "Hypolipémiant" par le nom de la feuille où chercher les médicaments

Merci merci merci merci mille fois ! C'est vraiment génial, je vais enfin pouvoir réaliser mon analyse statistique !

Je vais mettre le sujet en résolu et encore merci, vraiment !

Au fait pour conserver les macros il faut 'Enregistrer sous...' et choisir le Type *.xlsm

Pas de soucis je fais ca !

Merci beaucoup !

Bonjour

Je suis désolé de revenir sur cette discussion que j'avais mise en résolu, mais je viens d'essayer d'utiliser votre module sur excel mac, et cela ne fonctionne pas, je n'obtient que des 0, est ce normal ?

Merci d'avance

Bonjour,

Oui, excel Mac n'a pas les même fonctionnalité que sur windows.

Il ne connait pas .find()

Tu ne peux pas faire cette partie sur PC ? Sinon il faut refaire autrement en s'en passant, en tenant compte que je n'ai pas de Mac et que je ne peux pas tester

Non c'est gentil mais j'ai trouvé un PC et tout fonctionne parfaitement c'est génial !

Encore merci !

Rechercher des sujets similaires à "rechercher termes ligne"