Fonction RECHERCHE et ESTNUM

rickgoz

XLDnaute Nouveau
Bonjour,

J'ai deux petits problèmes.
Mon fichier comporte deux colonnes, dans une des références pouvant contenir des abréviations comme BX, BT, CP. Dans la deuxième correspond le libellé exact comme BOX, BOTTLE, CAP.

J'ai donc utilisé la formule suivante. Comme vous pouvez le constater elle est plutôt conséquente, avez vous une autre méthode?

Si non, mon second problème est que plusieurs abréviations comme BT, BTL correspondent à un seul libellé BOTTLE, ainsi le mot BOTTLE s'inscrit plusieurs fois dans la case. Par exemple si la référence est 12345678BTL la fonction va détecter "BT" et "BTL" et va donc m'inscrire BOTTLEBOTTLE.


Code:
=SI(ESTNUM(CHERCHE("BX";A94));"BOX";"")&SI(ESTNUM(CHERCHE("CP";A94));"CAP";"")&SI(ESTNUM(CHERCHE("BTL";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BT";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BS";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BSP";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BSF";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BSP";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BTL";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BS1";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BS2";A94));"BOTTLE";"")

Merci de votre aide.

Bonne journée

Richard
 

Sofhy

XLDnaute Occasionnel
Re : Fonction RECHERCHE et ESTNUM

Bonjour Richard,

J'ai ajouter un "ou" dans la formule au niveau de BT et BTL.

Code:
=SI(ESTNUM(CHERCHE("BX";A94));"BOX";"")&SI(ESTNUM(CHERCHE("CP";A94));"CAP";"")&SI(ESTNUM(CHERCHE("BT";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BS";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BSP";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BSF";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BSP";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE(OU("BTL";"BT");A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BS1";A94));"BOTTLE";"")&SI(ESTNUM(CHERCHE("BS2";A94));"BOTTLE";"")

A++,
Sofhy
 

rickgoz

XLDnaute Nouveau
Re : Fonction RECHERCHE et ESTNUM

Merci pour vos réponse.

Je viens de tester la formule suivante mais ça ne fonctionne pas.

Code:
=SI(ESTNUM(CHERCHE("BX";A94));"BOX";"")&SI(ESTNUM(CHERCHE("CP";A94));"CAP";"")&SI(ESTNUM(CHERCHE(OU("BTL";"BT";"BS1";"BS2";"BSF";"BSP";"BS");A94));"BOTTLE";"")
 

hbenalia

XLDnaute Occasionnel
Re : Fonction RECHERCHE et ESTNUM

Bonjour à tous,

Si tu veux que la formule ait pour résultat BOX dans le choix BX, CAP dans le choix CP, BOTTLE dans les choix BT, BTL, BS, BSP, BSF, BS1, BS2 et "" (Vide) dans les autres cas la formule la plus simple (à mon avis) est:

Code:
=SI(ESTNUM(CHERCHE("BX";A94));"BOX";SI(ESTNUM(CHERCHE("CP";A94));"CAP";SI(ESTNUM(CHERCHE("B";A94));"BOTTLE";"")))

Cordialement
 

rickgoz

XLDnaute Nouveau
Re : Fonction RECHERCHE et ESTNUM

Le problème est que je vais réunir

BX, BXT, BX1, BX1, FC, FCB, FD, FD1 (et peut être d'autres) sous BOX

et

BTL, BS, BS1, BTLS, BSP, BSP, BS2, BS3, BT (et peut être d'autres) sous BT

Ainsi de suite avec à peu près 10 regroupement..

Une idée?

Merci d'avance.
 

rickgoz

XLDnaute Nouveau
Re : Fonction RECHERCHE et ESTNUM

Voici ci le fichier que j'utilise.

Regarder à la ligne 94 (fond rouge) les formules utilisées.

Merci d'avance.

Richard
 

Pièces jointes

  • exemple.xls
    48 KB · Affichages: 157
  • exemple.xls
    48 KB · Affichages: 161
  • exemple.xls
    48 KB · Affichages: 170

Tibo

XLDnaute Barbatruc
Re : Fonction RECHERCHE et ESTNUM

Bonjour,

Deux tentatives :

une par formule (valable si pas trop de regroupements : maxi 7) :

Code:
=SI(SOMMEPROD((ESTNUM(CHERCHE({"BX";"FC";"FD"};$A2)))*1);"BOX";SI(SOMMEPROD((
ESTNUM(CHERCHE("CP";$A2)))*1);"CAP";SI(SOMMEPROD((ESTNUM(CHERCHE({"BS";"BT"};
$A2)))*1);"BOTTLE";"")))
L'autre par formule également mais avec un tableau d'équivalence :

Code:
=SI(SOMMEPROD((ESTNUM(CHERCHE(tablo;$A2)))*(tablo<>""))=0;"";INDEX(ligne_1_tablo;
SOMMEPROD((ESTNUM(CHERCHE(tablo;$A2)))*(tablo<>"")*TRANSPOSE(LIGNE(INDIRECT(
"1:"&NBVAL(ligne_1_tablo)))))))
Formules à recopier vers le bas

Je joins le fichier.

Ces formules doivent (devraient) pouvoir être simplifiées

Regarde et dis nous

@+

Edit : Correction de la 2ème formule :

Code:
=SI(SOMMEPROD((ESTNUM(CHERCHE(tablo;$A2)))*(tablo<>""))=0;"";INDEX(
ligne_1_tablo;SOMMEPROD((ESTNUM(CHERCHE(tablo;$A2)))*(tablo<>"")*
COLONNE($A$1:$C$1))))

Voir fichier

@+
 

Pièces jointes

  • rickgoz.zip
    26 KB · Affichages: 92
Dernière édition:

rickgoz

XLDnaute Nouveau
Re : Fonction RECHERCHE et ESTNUM

Merci beaucoup pour cette réponse.

Je vais devoir utiliser la solution deux car j'ai plus de 7 regroupements.

Cependant, même j'ai réussi à l'appliquer dans mon fichier, je ne la comprend pas très bien, pourrais tu me l'expliquer :) ?

Merci d'avance.

Richard
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Fonction RECHERCHE et ESTNUM

Bonjour,

La partie de la formule suivante :

Code:
(ESTNUM(CHERCHE(tablo;$A2)))*(tablo<>"")*COLONNE($A$1:$C$1)

permet de savoir si on trouve une valeur du tablo (cellule non vide) dans une cellule (ici : $A2). Si oui, la formule retourne le n° de colonne du tablo où la valeur a été trouvée.

Si le tableau fait plus de trois colonnes, il faudra adapter le COLONNE($A$1:$C$1) en COLONNE($A$1:$D$1) ou J par exemple si 10 colonnes

Une fois trouvé le n° de colonne, on en extrait le code d'après la 1ère ligne du tablo avec la fonction INDEX.

Le début de la formule est destiné à éviter l'affichage d'un message d'erreur si la valeur cherchée n'est pas présente.

Il ne faut pas non plus oublier d'adapter la définition des noms tablo et ligne_1_tablo si le nombre de colonne augmente.

Voilou pour la tentative d'explication.

On doit pouvoir faire mieux (plus simple), mais pas trouvé.

@+
 
Dernière édition:

rickgoz

XLDnaute Nouveau
Re : Fonction RECHERCHE et ESTNUM

Bonjour,

Merci pour cette explication. Je commence à comprendre.
Pourrais tu me passer ton adresse mail afin que je t'envoie mon fichier (256ko). En effet, il reste quelque erreur et j'ai vraiment besoin d'aide! Il s'avère que de temps en temps il reconnait le BX ou BXT et met bien BOX mais de temps il met autre chose! Je ne comprend pas..

J'espère que tu pourras m'aider.

Merci d'avance.

Richard
 

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972