XL 2013 Problème limitation 64 imbrications =SI(NB.SI.ENS(SI(NB.SI.ENS...etc. possible de simplifier?

WIsh_

XLDnaute Occasionnel
Bonjour à tous,

Je souhaiterais trouver une formule qui me permet de renvoyer dans la colonne B de la feuille 1 le texte présent dans la feuille 2 colonne A :

- à la condition que la phrase présente dans la colonne C de la feuille 1 contienne le ou les termes présents dans la feuil 2 colonne B à D ;
et
- à la condition que la valeur ou le texte présent dans la colonne A de la feuille 1 contienne la valeur ou le texte présent en colonne A de la feuille 2.

Je ne sais pas si c'est super clair.
Voir mon fichier excel ci-joint. Le résultat attendu figure dans la colonne surlignée en jaune.

J'ai essayé de définir des plages sur la feuille 2 pour simplifier mes formules mais sans succès...

Merci d'avance,
Wish
 

Pièces jointes

  • Recherche1.xlsx
    12.6 KB · Affichages: 16

WIsh_

XLDnaute Occasionnel
Bonjour @Jocelyn,

Merci pour cet essai.
Au vu de ta réponse, je pense que mon fichier exemple n'est pas clair.

Il y a toujours des données dans la colonne A de la feuille 1, mea culpa.

Ce que je voulais montrer c'est que parfois on recherche uniquement les données des colonnes B à D de la feuille 2 dans la colonne C de la feuille 1 et d'autre fois on ajoute un second critère, qui est, en plus du premier susmentionné, "rechercher les données de la colonne A de la feuille 2 dans la colonne A de la feuille 1".

Il s'agit de 2 conditions qui s'aditionnent lorsqu'on le souhaite. Il s'agit d'ajouter un critère pour distinguer davantage 2 lignes qui répondraient toutes deux à la 1ère condition.

Le soucis aussi, c'est que dans mon fichier original, j'ai 948 lignes dans lesquels rechercher des données pour les classer en 62 "catégories" différentes. Je ne peux donc pas ajouter des bouts de formules à l'infini, d'où l'idée de définir des plages de critère pour les "citer" dans la formule et ainsi en réduire la taille et le caractère indigeste :)

Bien à toi,
Wish
 
Dernière édition:

WIsh_

XLDnaute Occasionnel
Re,

Je pense qu'une macro est peut-être nécessaire.
Il faut peut-être rechercher les mots de la phrase présente en colonne B de la feuille 1, un à un dans la liste des critères pour enfin renvoyer la valeur choisie lorsqu'il y a correspondance...

J'ai réussi à compter le nombre de mot dans chaque cellule de la colonne B de la feuille 1 mais je n'ai pas réussi à "appeller" chaque mot dans une formule.
 

GALOUGALOU

XLDnaute Accro
bonjour wlsh bonjour le forum
ma solution est lourde mais fonctionnelle
il y a certainement mieux mais voici déjà un début de piste
cordialement
galougalou

ps les cellules avec des formules sont protégés par la validation des données
 

Pièces jointes

  • Recherche v1 2020.01.29.xlsx
    17.3 KB · Affichages: 6

WIsh_

XLDnaute Occasionnel
Bonjour,

Bonjour @GALOUGALOU, et merci pour la tentative. Je n'ai hélas pas compris ton fichier ni vu la solution dedans.

J'ai opté pour la solution suivante qui attache les "codes" (Feuil!2 $A2:$A18) que je souhaite renvoyer dans la feuil1!$B2:$B23 à des mots clés (voir feuil2!B2:E18)que je recherche dans la Feuil1!$C2:$C23. J'ai imbriqué toutes les conditions... et cela donne ceci:

Code:
=SI(NB.SI.ENS($C2;"*bonjour*");"BON";SI(NB.SI.ENS($C2;"*souhaiterais*";$A2;"5");"Voeu";SI(NB.SI.ENS($C2;"*souhaiterais*";$C2;"*trouver*");"Voeu2";SI(NB.SI.ENS($C2;"*permet*";$A2;"/");"formidable";SI(NB.SI.ENS($C2;"*permet*";$A2;"4");"formidable";SI(NB.SI.ENS($C2;"*permet*";$A2;"142");"force";SI(NB.SI.ENS($C2;"*permet*";$A2;"3");"formidable";SI(NB.SI.ENS($C2;"*colonne B*";A2;"*gfd*");"Renvoi"; SI(NB.SI.ENS($C2;"*colonne B*";A2;"*fg*");"Renvoi";SI(NB.SI.ENS($C2;"*présent*";$C2;"*A*";$A2;"zzrer");"TXT";SI(NB.SI.ENS($C2;"*présent*";$C2;"*le*";$A2;"142");"TXT2";SI(NB.SI.ENS($C2;"*présent*";$C2;"*A*";$A2;"*truc*");"TXT 5";SI(NB.SI.ENS($C2;"*contienne*";$A2;"*jukk*");"cond";SI(NB.SI.ENS($C2;"*contienne*";$A2;"8");"condition";SI(NB.SI.ENS($C2;"*contienne*";$A2;"18");"condiment";SI(NB.SI.ENS($C2;"*présent*";$C2;"*B*";$A2;"142");"Feuil2";SI(NB.SI.ENS($C2;"*présent*";$C2;"*B*";$A2;"41");"Feuillebis";SI(NB.SI.ENS($C2;"*présent*";$C2;"*B*";$A2;"vert");"autreF";SI(NB.SI.ENS($C2;"*présent*";$C2;"*B*";$A2;"*outre*");"Null";SI(NB.SI.ENS($C2;"*présent*";$C2;"*B*";$A2;"34");"autreY";"non"))))))))))))))))))))

Mon problème est que j'ai dans mon fichier original davantages de codes à renvoyer et que je dépasse les 64 imbrications, ce qui n'est pas faisable dans excel.

Du coup, il y a-t-il une façon (ou plusieurs) de simplifier la formule ci-dessus ?

Voir mon fichier joint.

Merci d'avance,
Wish
 

Pièces jointes

  • Recherche3.xlsx
    11.6 KB · Affichages: 6
Dernière édition:

Discussions similaires

Haut Bas