XL 2010 Si(Estnum(cherche X3

vermigliTA

XLDnaute Nouveau
Bonjour,
Je rencontre un problème lors de l'écriture d'un formule. Pour le contexte j'ai une colonne avec différentes donnés extraites d'un dossier.
ce qui m'intéresse c'est de pouvoir catégoriser ces noms dans le tableau. J'ai essayé plusieurs façon d'écrire cette formule sans succès.
Avec de préférence 3 condition, SI contient "SE" = Sous-enssemble, SI contient "VER" = Pièce, SI contient ="PF" = Produit fini.
1662730767034.png
 

Ashil

XLDnaute Nouveau
Bonjour,

Une proposition de solution dans le fichier en PJ.
La syntaxe est la suivante =SIERREUR(SI.CONDITIONS(ESTNUM(CHERCHE("SE";D9));"Sous ensemble";ESTNUM(CHERCHE("VER";D9));"Pièce";ESTNUM(CHERCHE("PF";D9));"Produit fini");"Pas de correspondance").

N'hésitez pas à vous abonner à ma chaine Youtube pour des tutos Excel.

Cdlt,
Ashil
 

Pièces jointes

  • Solution.xlsx
    9.7 KB · Affichages: 6

JHA

XLDnaute Barbatruc
Bonjour à tous,

Excel 2010 ne possède pas la fonction si.condition.
Je te propose cette alternative sur le fichier de Ashil :)
VB:
=SI(ESTNUM(CHERCHE("SE";D9));"Sous ensemble";SI(ESTNUM(CHERCHE("VER";D9));"Pièce";SI(ESTNUM(CHERCHE("PF";D9));"Produit fini";"Pas de correspondance")))

JHA
 

Pièces jointes

  • Solution bis.xlsx
    9.8 KB · Affichages: 3

vermigliTA

XLDnaute Nouveau
Bonjour à tous,

Merci pour vos réponses, vos formules fonctionnent (j'ai mal choisi le topic, j'ai excel 2021)

Il me manque juste une petite optimisation c'est de chercher dans les première lettre
pour éviter de mal catégoriser.
1662966263286.png

Je suis en train de chercher avec la fonction gauche voir si y'a quelque chose à faire.
 

Ashil

XLDnaute Nouveau
Bonjour à tous,

Merci pour vos réponses, vos formules fonctionnent (j'ai mal choisi le topic, j'ai excel 2021)

Il me manque juste une petite optimisation c'est de chercher dans les première lettre
pour éviter de mal catégoriser.
Regarde la pièce jointe 1149278
Je suis en train de chercher avec la fonction gauche voir si y'a quelque chose à faire.
Bonjour,
Ci-joint une proposition de solution.
N'hésitez pas à visiter ma page Youtube pour des astuces d'utilisation d'Excel.
Cdlt,
Ashil
 

Pièces jointes

  • Solution (1).xlsx
    9.9 KB · Affichages: 5

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous :),

Une formule qui doit fonctionner quelque soit la version d'Excel :
VB:
=INDEX({"Sous-ensemble";"Pièce";"Produit fini"};10*MOD(MIN(SIERREUR(CHERCHE("se";D9)+1/10;99,9);SIERREUR(CHERCHE("ver";D9)+2/10;99,9);SIERREUR(CHERCHE("pf";D9)+3/10;99,9));1))
  • Elle retient la première des 3 valeurs {"se";"ver";"pf"} rencontrée à partir de la gauche de D9
  • Elle renvoie une erreur #Ref si aucun des 3 termes n'est présent
 

Pièces jointes

  • vermigliTA- chercher()- v1.xlsx
    10.6 KB · Affichages: 3

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Juste pour le fun, avec une fonction personnalisée:
Function RechercherDans(xtexte As String, ParamArray xreference())

Exemple d'utilisation:
VB:
=RechercherDans(D9;"se";"Sous ensemble";"ver";"Pièce";"pf";"Produit fini")

Colonne E => par formule. Colonne F => avec la fonction RechercherDans.

Nota : on peut mettre autant de couple (abrévation;nom long) qu'on désire. Il faut au moins un couple.

Le code de la fonction personnalisée est dans module1:
VB:
Function RechercherDans(xtexte As String, ParamArray xreference())
Dim i&, n&, npos&, refpos$
   npos = Len(xtexte) + 1
   For i = LBound(xreference) To UBound(xreference) Step 2
      n = InStr(1, xtexte, xreference(i), vbTextCompare)
      If n > 0 And n < npos Then npos = n: refpos = xreference(i + 1)
   Next i
   RechercherDans = IIf(npos = Len(xtexte) + 1, CVErr(xlErrRef), refpos)
End Function
 

Pièces jointes

  • vermigliTA- chercher()- v10.xlsm
    17.2 KB · Affichages: 1
Dernière édition:

vermigliTA

XLDnaute Nouveau
Bonsoir à tous :),

Une formule qui doit fonctionner quelque soit la version d'Excel :
VB:
=INDEX({"Sous-ensemble";"Pièce";"Produit fini"};10*MOD(MIN(SIERREUR(CHERCHE("se";D9)+1/10;99,9);SIERREUR(CHERCHE("ver";D9)+2/10;99,9);SIERREUR(CHERCHE("pf";D9)+3/10;99,9));1))
  • Elle retient la première des 3 valeurs {"se";"ver";"pf"} rencontrée à partir de la gauche de D9
  • Elle renvoie une erreur #Ref si aucun des 3 termes n'est présent
Merci à tous,
incroyable cette formule règle tout les problèmes que je peux rencontrer
 

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet