XL 2019 Formule imbriquée

JFLulu

XLDnaute Nouveau
Bonjour à toutes et tous,

J'ai une liste de 24 000 noms de produit ( et cela augmente tous les mois) avec souvent dans la saisie, l'écriture des différences (avec espace, sans espace, minuscule, majuscule Ect....)
Il y a environ 80 références.
L'idée est de récupérer un morceau de la chaine de caractères qui lui est commun à chaque références, puis de lui donner une nom
Ex:
1583182236459.png

j'ai pensé à la Fonction SI.Multiple qui permet d'avoir 147 occurrences; problème il faut un nom complet dans la recherche.
je me suis dit, très naïvement que j'allais utiliser la formule de base :
1583182540915.png
en l'imbriquant avec Si.multiple ou si.condition.
Cela ne marche pas et je tourne en rond comme un poisson rouge dans son bocal sans trouver de solution.
Je vous joint un fichier avec mes essais (malheureux).
Merci à toutes celles et ceux qui voudront bien se pencher sur mon problème.
Cordialement
 

Pièces jointes

  • 1583182471572.png
    1583182471572.png
    828 bytes · Affichages: 11
  • Extraction.xlsx
    11 KB · Affichages: 12
Solution
Voici un complément qui détecte "3040"
=SI(ESTERREUR(CHERCHE("*E5570*";[@[Nom Complet]];1));SI(ESTERREUR(CHERCHE("*E7470*";[@[Nom Complet]];1));SI(ESTERREUR(CHERCHE("*3040*";[@[Nom Complet]];1));"autre test à faire";"ddd");"Latitude E7470");"Latitude E5570")

les tests imbriqués doivent l'être sur le principe
=si A(alors si B(alors si C(alors si D(conséquence si D;conséquence si pas D);conséquence si pas C);conséquence si pas B);conséquence si pas A)
C'est à dire sur le principe conditionABCD;conséquence si D;conséquence si pas DCBA

Cordialement,
ML

Claudy

XLDnaute Accro
Bonjour à toutes et tous,

J'ai une liste de 24 000 noms de produit ( et cela augmente tous les mois) avec souvent dans la saisie, l'écriture des différences (avec espace, sans espace, minuscule, majuscule Ect....)
Il y a environ 80 références.
L'idée est de récupérer un morceau de la chaine de caractères qui lui est commun à chaque références, puis de lui donner une nom
Ex: Regarde la pièce jointe 1056996
j'ai pensé à la Fonction SI.Multiple qui permet d'avoir 147 occurrences; problème il faut un nom complet dans la recherche.
je me suis dit, très naïvement que j'allais utiliser la formule de base : Regarde la pièce jointe 1056998 en l'imbriquant avec Si.multiple ou si.condition.
Cela ne marche pas et je tourne en rond comme un poisson rouge dans son bocal sans trouver de solution.
Je vous joint un fichier avec mes essais (malheureux).
Merci à toutes celles et ceux qui voudront bien se pencher sur mon problème.
Cordialement
Bonsoir,
je ne sais si j'ai bien compris ,
mais en VBA
j'ai ceci, à adapter à te besoins:
Sub Détail()
Dim zaza As String
Dim i As Double
Dim Derlig As Double
Application.EnableEvents = False
Range("O15:Q125").ClearContents
zaza = InputBox("Entrer un mot à détailler le montant", , "SSD")

Range("N10") = UCase(zaza)

Derlig = Range("I10000").End(xlUp).Row
'MsgBox (derlig)
i = 0
nb = 0
'Range("O" & 15 + i).Select
'Exit Sub
For Each cel In Range("I4:I" & Derlig)

If UCase(cel.Value) Like "*" & Range("N10").Value & "*" Then

Range("O" & 15 + i) = cel.Text
Range("P" & 15 + i) = cel.Offset(0, -2).Value
Range("Q" & 15 + i) = "Lig " & cel.Row() & "/" & cel.Offset(0, 1).Text

i = i + 1
nb = nb + 1
End If

Next
Range("M11") = UCase(zaza) & " // Trouvé: " & nb & " lig.."
Range("P15:p125").Select

Application.EnableEvents = True
End Sub

A+
Claudy
 

JFLulu

XLDnaute Nouveau
Merci Claudy et Micheldu52,
la formule de Michel fonctionne sur 2 occurrences par contre dès que je rentre un troisième argument comme "5625" par exemple ou j'attend OP 5625 M j'ai un message d'erreur : trop d'arguments pour cette fonction.
je vous la livre j'ai du faire une erreur ;
=SI(ESTERREUR(CHERCHE("*E5570*";[@[Nom Complet]];1));SI(ESTERREUR(CHERCHE("*E7470*";[@[Nom Complet]];1));SI(ESTERREUR(CHERCHE("*5625*";[@[Nom Complet]];1));"Dell Latitude E5570";"Dell Latitude E7470";"OP 5625 M")))
en gras le troisième test rajouté
merci d'avance pour votre patience vis avis du béotien que je suis:eek:
Jean-François
 

micheldu52

XLDnaute Occasionnel
Voici un complément qui détecte "3040"
=SI(ESTERREUR(CHERCHE("*E5570*";[@[Nom Complet]];1));SI(ESTERREUR(CHERCHE("*E7470*";[@[Nom Complet]];1));SI(ESTERREUR(CHERCHE("*3040*";[@[Nom Complet]];1));"autre test à faire";"ddd");"Latitude E7470");"Latitude E5570")

les tests imbriqués doivent l'être sur le principe
=si A(alors si B(alors si C(alors si D(conséquence si D;conséquence si pas D);conséquence si pas C);conséquence si pas B);conséquence si pas A)
C'est à dire sur le principe conditionABCD;conséquence si D;conséquence si pas DCBA

Cordialement,
ML
 

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22