Microsoft 365 Problème avec formule SOMMEPROD((ESTNUM(TROUVE))) pour recherche dans texte

NineAP

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord je tiens à remercier chaleureusement toutes les personnes dont je lis dans le silence les réponses aux questions des gens qui, comme moi, s'emballent sur Excel et touchent leurs limites rapidement...
Voilà un peu de contexte : je cherche à classer des commentaires dans des typologies de commentaires.
Grâce à cela, j'ai bidouillé une formule de type SOMMEPROD((ESTNUM(TROUVE))) trouvée dans ce forum.
Cela me permet d'attribuer un chiffre pour chaque commentaire, chiffre correspond à une typologie.
Pour cela, j'ai dû créer une liste de mots permettant de rapprocher chaque commentaire d'une typologie.
Mon problème est que, si dans un commentaire, il y a plusieurs mots "reconnus", alors les chiffres sont sommés et donc, la typologie ne peut pas être reconnue.
Sauriez-vous m'aider s'il vous plaît à parfaire cette formule pour que les chiffres ne soient plus sommés? Si le calcul s'arrêtait au premier mot reconnu, et donc à la première typo reconnue, cela me conviendrait. Mon objectif étant d'atteindre un pourcentage satisfaisant (100%?) de commentaires "caractérisés" selon nos typologies.
Je vous remercie d'avoir pris le temps de me lire et aussi de prendre le temps de réfléchir à ma problématique.
Bonne soirée à tous !
Amandine

npsFeedback​
Typo numéro​
Typologie​
Tonalité​
merci​
5​
client satisfait​
Positif​
tres bien​
10​
Commentaire non classé​
commentaire non classé​
Yann est sympa​
7​
préfère le contact commercial​
Neutre​
bien​
5​
client satisfait​
Positif​
ras​
5​
client satisfait​
Positif​
application pas simple​
13​
Commentaire non classé​
commentaire non classé​
RAS​
10​
Commentaire non classé​
commentaire non classé​
JJLJHB​
0​
FAUX​
#N/A​
TRES BIEN​
5​
client satisfait​
Positif​
rupture de produit​
3​
problème de stock​
Négatif​

Désolée je n'arrive pas à joindre le fichier excel.
Voici ce que j'ai mis comme formule dans la colonne "typo numéro"
=SOMMEPROD((ESTNUM(TROUVE(typos!$D$2:$CI$9;commentaires!A3))*(typos!$D$2:$CI$9<>""))*(typos!$A$2:$A$9))

Et voici ce que j'ai dans l'onglet typos :

N° typo​
Liste des typologies​
Tonalité​
1
lenteur​
Négatif​
lent​
long​
longue​
LENTE​
Ca prend plus de temps​
ca prend du temps​
Ca prend du temps​
2
problème recherche​
Négatif​
cherche​
recherche​
search​
on ne trouve pas​
3
problème de stock​
Négatif​
rupture​
Ruptre​
RUPTURE​
RUPTURES​
stock​
4
bugues​
Négatif​
bug​
bugue​
beugue​
ne marche pas​
les promos​
instable​
5
client satisfait​
Positif​
super​
top​
tres bien​
très bien​
merci​
TRES BIEN​
Ras​
RAS​
GAIN DE TEMPS​
6
problème livraison​
Négatif​
livre​
livrer​
POSSIBLE DE LIVRER​
possible de livrer​
à livrer​
des erreurs​
7
préfère le contact commercial​
Neutre​
commercial​
commerciale​
ludo​
joanna​
Yann​
8
mauvaise UX​
Négatif​
pas simple​
des choses à améliorer​
des choses a ameliorer​
commentaire non classé​
commentaire non classé​

Et beaucoup d'autres mots-clefs.

NB : NA signifie que le client n'a pas saisi de commentaire, il faut donc que je le prenne en compte dans ma formule

Merci encore pour votre aide
 

laurent950

XLDnaute Accro
Bonsoir,

L'idée c'est une table de correspondance à créer avec Excel.
La clef = Typo numéro
Construire une table comme vous l'avez fait (votre deuxième tableau)
Votre premier tableau (La colonne : Typologie) sera remplis avec la table de correspondance

Avantage = Illimité
Désavantage = VBA (Demande des connaissances) au même titre que les fonctions complexes
Les plus = Ultra rapide, et aucune erreur.

Je peux vous faire le code en VBA, en fonction (trop de condition et trop lourd a gérer)

Laurent
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Pas évident d'interpréter du texte en Excel !!
Désolée je n'arrive pas à joindre le fichier excel.
Ca c'est bizarre ????
En tout cas avec le fichier on pourrait déjà avoir du concret
Je ne suis pas du tout "formule" mais là cela sent le bien complexe ?
Ce qu'il faut c'est > J'ai CA ( les arguments du départ) et je veux CA ( les résultats et ou ?)
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re
Bien joué , j'ai appâté et ça mord !! 0 réponse avant que je réponde ??
Mais si j'étais Amandine je dirais que vous n'avez pas du tout répondu à ma demande , je précise ...dans son contexte comme
Mon objectif étant d'atteindre un pourcentage satisfaisant (100%?) de commentaires "caractérisés" selon nos typologies.

Sinon oui moi je ne voyais que du VBA ... donc @laurent950 tu n'aurais pas pu joindre ton fichier avec ton code et ses données ?? on aurait pu tester !!!
 

laurent950

XLDnaute Accro
Bonsoir @herve62, @djidji59430 ,@NineAP

Sinon oui moi je ne voyais que du VBA ... donc @laurent950 tu n'aurais pas pu joindre ton fichier avec ton code et ses données ?? on aurait pu tester !!!

J'ai ajouté le fichier avec le code sur ce nouveau "Poste 6" pour vous @herve62

VB:
Sub TypoNum()
' Feuille Typo (Feuille de votre deuxiéme tableau)
    Dim Ftypo As Worksheet
        Set Ftypo = Worksheets("Typo")
    Dim TableTypo As Variant
        TableTypo = Ftypo.Range("A1").CurrentRegion
' Feuille Commentaires (Feuille de votre premier tableau)
    Dim Fcommentaires As Worksheet
        Set Fcommentaires = Worksheets("Commentaires")
    Dim Bdcommentaires As Variant
        Bdcommentaires = Fcommentaires.Range("A1").CurrentRegion.Value2
' ******************************************************************************
' Votre premier tableau de votre Poste #1
' Le code VBA pour remplire le tableau de la feuille commentaire : Bdcommentaires
' la colonne (Typologie) soit la colonne 3 de votre premier tableau
' La colonne (Tonalité) soit la colonne 4 de votre premier tableau
' *******************************************************************************
    For i = 2 To UBound(Bdcommentaires, 1) ' .................. Commence à la ligne N°2 de votre premier tableau (Feuille Ftypo)
        For j = 2 To UBound(TableTypo, 1)  ' .................. Commence à la ligne N°2 de votre deuxiéme tableau (Feuille Fcommentaires)
            If Bdcommentaires(i, 2) = TableTypo(j, 1) Then ' .. Si les Numéros des clef des colonnes "des deux tableaux" (Colonne : Typo numéro) correspondent
                Fcommentaires.Cells(i, 3) = TableTypo(j, 2) ' . Remplis la colonne N°3 (Typologie) de votre Feuille commentaire "Fcommentaires"
                Fcommentaires.Cells(i, 4) = TableTypo(j, 3) ' . Remplis la colonne N°4 (Tonalité) de votre Feuille commentaire "Fcommentaires"
                Exit For ' .................................... Condition remplis alors sortie de la boucle for j
            End If
        Next j
    Next i
End Sub

j'ai aussi ajouté un menu déroulant dans la colonne A et B de la Feuille Typo :

Explication ci-dessous :
Tableau dans l'onglet typos pour les colonnes (sans En-tête) :
c'est a dire les colonnes en partant de la droite vers la gauche D à K
Donc en Colonne A (je verrais bien un menu déroulant dans la cellule) qui rappel la liste de D à K

Vous pouvez essayé pour l'exercice, en modifiant des paramètres.
les ? en rouge sont a effacer Ou a compléter :

Il faut gérer les longueurs pour chaque ligne dans la validation des données (Colonne A)
gestion des longueurs des listes par ligne : Exemple $D2:$L2 (L = dernière colonne remplis)

Il faut généré une liste pour la validation des données (Colonne B)
Exemple : Négatif;Neutre;Positif
Pour 3 à 6 choix cela suffit l'écriture pour cela, ensuite il faut passé par un array.

VB:
Colonne A pour validation des données : Liste / =$D2:$[B][SIZE=5][COLOR=rgb(184, 49, 47)]L[/COLOR][/SIZE][/B]2
Colonne B pour validation des données : Liste / Tonnalité a renseigné;Négatif;Neutre;Positif;Commentaire non classé

Laurent
 

Pièces jointes

  • TypologieCommantaires.xlsm
    21.5 KB · Affichages: 3
Dernière édition:

Statistiques des forums

Discussions
312 071
Messages
2 085 049
Membres
102 766
dernier inscrit
Awiix