Formule difficile

Résolu
Bonjour,

Je cherche a creer une formule en E1 qui me permettent d'afficher tous les résultats possibles parmi les cellules colonne A pour la condition : (contient "texte1" ou "texte2"en B1 + contient "texte3" ou "texte4" en C1 OU D1 .
Et cela pour toute la feuille en colonne E.

6 réponses

Résumé de la discussion

La demande porte sur une formule en E1 d'Excel pour afficher dans E toutes les entrées de la colonne A qui satisfont texte1 ou texte2 en B1 et texte3 ou texte4 en C1 ou D1. Plusieurs intervenants suggèrent d'utiliser le filtre automatique pour sélectionner les lignes répondant aux critères, plutôt que de tenter une seule formule complexe en E, afin de gagner en simplicité et en performance. D'autres approches discutées incluent une macro VBA, une adaptation ligne par ligne pour E, ou l'affichage des résultats groupés dans une seule cellule plutôt que distribués horizontalement. Des conseils pratiques incluent de gérer les cellules vides ou l'absence de résultats via des substituts, et de partager des exemples via des liens pour clarification.

Bobot (l’IA à votre service)
  1. 1
    1. bon j'ai refait un exemple TRES concret avec des termes concrets lol! je ne peux pas l'être plus...cest vrai que j'aurai du faire ca des le debut:

      https://www.cjoint.com/?DFen5CFaNyS
      0
    2. ah merci!!!ca a lair vraiment bien!!!je vais tenter d'adapter ca à mon document.. Merci beaucoup!!!
      0
    3. une dernière chose: si mon tableau comporte 6 colonne au lieu de 4 est ce que les apellation d1, d2, s1, s2 et cd, sc1, sc2 et sc3 ont une importance ou je les nomme comme je veux? sinon comment je les nomme pour une 5eme et 6eme colonne? merci encore

      "d1 = Sheets("Feuil2").Range("A" & n).Value
      d2 = Sheets("Feuil2").Range("B" & n).Value
      s1 = Sheets("Feuil2").Range("C" & n).Value
      s2 = Sheets("Feuil2").Range("D" & n).Value
      result = ""
      For x = 15 To 21
      cd = Sheets("Feuil1").Range("B" & x).Value
      sc1 = Sheets("Feuil1").Range("C" & x).Value
      sc2 = Sheets("Feuil1").Range("D" & x).Value
      sc3 = Sheets("Feuil1").Range("E" & x).Value
      0
  2. Contributeur
    Bonjour,

    J'ai l'impression que le filtre automatique est la réponse à ton problème.
    Tu devrais jeter un oeil dessus, ça te permet de filtrer les lignes qui répondent à un critère.

    eric
    0
    1. alors on est dans l'idée mais j'ai encore omis quelquechose
      Je ne peux pas me permettre d'étirer la formule en E sur la 1ère feuille.
      Ma formule sera différente pour chaque cellule car les valeurs "texte1" "texte2" texte3" et"texte4" vont changer en fonction des lignes...

      Il m'aurait fallu un tableau qui differe selon la cellule que je sélectionne en E.

      ou plus simple est il possible que toutes les valeurs apparaissent dans la celulle E (sans tableau) mais à la ligne l'une en dessous de l'autre plutot que l'une à coté de l'autre?
      Merci de m'aider pour moi c'est compliqué je n'ai pas de notion....
      0
      1. en fait je dois adapter manuellement ma formule en E pour chaque ligne
        0
      2. et toujours pour chaque cellule en E il me faut toutes les valeurs de A possibles en fonction de ma formule.
        0
      3. ca se complique....lol
        0
      4. Contributeur
        C'était compliqué dès le début !
        Tu n'arrives pas à expliquer ce que tu veux : on ne peut pas inventer ou deviner ...
        Si tu avais envoyé ton fichier dès le début, on aurait économisé pas mal de messages.
        Mais il n'est pas trop tard, va dans https://www.cjoint.com/ pour créer le lien, que tu reviendras coller ici.
        Et je parle bien du fichier Excel ; pas d'une image obtenue avec copie d'écran ...
        0
    2. oui la colonne A comporte plus de 200 lignes... donc dans une seule cellule ça me parait pas génial....as tu une idée pour que ça soit mieux présenté?
      Les résultats ne pourraient pas apparaitrent dans un tableau en page 2 par exemple? ou alors tous les résultats en E mais visibles sous la forme d'une liste déroulante? c'est possible tout ca?
      Merci
      0
      1. ou alors un double click sur E qui renvoit à un tableau en feuille 2 avec les résultats à l'intérieur...
        un tableau dont les valeurs changent en fonction de la cellule sur laquelle je double click (E1, E2, E3...etc...)
        0
      2. une liste déroulante avec tous les résultats m'irait mais je ne sais pas si cest possible
        0
      3. oui les résultats dans un tableau c'est possible, je te prépare un exemple sur quelques lignes
        0
      4. merci beaucoup je vais tester ca tout a lheure et vous dirait demain si ca a fonctionné.
        0
    3. merci votre formule fonctionne mais j'ai du mal m'exprimer.
      en fait dans la colonne E j'aimerais pour chaque ligne, prenons l'exemple de E1, l'affichage de toute les cellules en A pour lesquelles la formule en E1 est vrai...
      En fait ici si il y'a des valeurs pour E1 il maffiche juste A1, je voudrais qu'il m'affiche en E1 toutes les cellules dans la colonne A ou une valeur est trouvé...

      J'ai du mal à exprimer ce que je veux, j'espere me faire comprendre (sinon la formule se rapproche tt de même de ce que je voulais)
      0
      1. OK tu veux avoir tous les résultats regroupés dans une seule cellule?
        SI la colonne A n'est pas longue tu peux concaténer les résultats de la colonne E en F1 par exemple en mettant la formule =E1 & " " & E2 & " " & E3 etc

        Par contre si la colonne A comporte beaucoup de lignes il vaudrait mieux passer par une macro en VBA et faire inscrire le résultat en E1

        Cdlmnt
        0
    4. Bonjour

      En E1 mettre la formule :
      =SI(ET(OU(B1="texte1";B1="texte2");OU(C1="texte3";C1="texte4";D1="texte3";D1="texte4"));A1;"")

      L'étirer au bas de la colonne

      Cdlmnt
      0