Comparer valeurs, déterminer maximum et compter occurrences

Bonjour,

J'ai un tableau qui répertorie une liste de profils utilisateurs, chaque profil étant composé de 5 valeurs numériques (entre 0 et 1), chacune affecté à l'un des 5 grands traits de personnalité (Ouverture aux Nouvelles Expériences, Neuroticisme, Agréabilité, Conscienciosité, Extraversion).

Pour chaque utilisateur, les valeurs affectées à chacun des traits de caractère sont calculées par un algorithme de sorte que l'une des valeurs est la plus grande des 5 : par exemple, pour l'utilisateur 2, c'est le trait Ouverture qui a la plus grande valeur (0,47), de sorte que l'Ouverture aux Nouvelles Expériences est son trait de caractère principal.

Les profils sont en ligne, et les traits de caractère dans les colonnes de C à G.

Ce que je cherche à faire, c'est tout simplement une analyse de la répartition des traits dont la valeur est maximale pour chaque utilisateur (me permettant ainsi de compter le nombre d'utilisateurs qui ont l'Ouverture pour trait principal, ceux qui ont l'Extraversion pour trait principal, etc).

Je sais déterminer sur une ligne quelle est la valeur la plus grande (fonction =Max()), mais je ne sais pas comment, une fois cette valeur identifiée, en déduire la colonne à laquelle elle appartient (c'est à dire à quel trait elle se rattache), ni comment comptabiliser le nombre de fois qu'un trait donné est le trait principal pour un utilisateur...

In fine, je voudrais simplement pouvoir arriver à un graph qui me dirait : X% des utilisateurs ont Ouverture comme trait principal, Y% Extraversion, etc.

Ci joint, un fichier exemple (très simplifié, il ne comporte qu'une trentaine de profils).

Merci beaucoup pour vos conseils et suggestions !

Bonjour , testez le Tableau Croisé Dynamique.

Une vidéo tuto prise au hasard :

https://www.youtube.com/watch?v=OlypTkG3M7U

Force rouge a écrit :

Bonjour , testez le Tableau Croisé Dynamique.

Merci pour votre suggestion. Effectivement, cela parait logique de générer un 2e tableau à partir des valeurs maximales de chaque profil, puis d'analyser ce 2e tableau pour obtenir les comptages des occurrences de chaque trait comme "principal".

Mon problème, c'est que je ne sais même pas comment générer ce 2e tableau. Comme je l'ai expliqué, je sais comment faire pour identifier la valeur maximale, mais pas comment retrouver le trait de caractère que cette valeur quantifie.

Ceci convient-il un peu mieux ? Les résultats sont dans les colonnes i,j,k

Wow, c'est absolument parfait !

Il ne me reste plus qu'à essayer de reproduire cela sur mon fichier source, et à comprendre l'utilisation de cette fonction DECALER que vous avez utilisée, dont j'ignorais tout.

En tout cas, 1000 merci pour votre aide rapide et précieuse !

Merci à vous également

Re bonjour,

Je me heurte à un petit mystère : quand je copie votre formule dans le tableau originel, aucun problème en colonne I, le trait de caractère principal pour chaque ligne de profil est bien identifié. Par contre, c'est le compteur, en cellule K2, qui m'affiche l'erreur #NOM?

Or, dans la formule de la cellule K2 de votre exemple

=NB.SI(Max;J2)/NBVAL(Max)

je suppose que "Max" fait référence à une plage de données que vous avez nommée Max, n'est ce pas ?

Si oui, comment faire pour donner à la plage de mes données (qui s'étend de I2:I4666) le nom Max ? Ou créer cette plage ?

Si non, savez vous pourquoi j'obtiens cette erreur et comment la résoudre ?

Merci !

Oui Max est un nom qui correspond à une plage dynamique.

sur mon vieux excel je vais dans le menu insertion puis Nom puis j'entre un nom de plage et une plage de référence

ici un lien sur comment créer une plage de façon dynamique

https://support.microsoft.com/en-us/kb/830287/fr

Dans votre cas la formule pour avoir la plage de référence c'est

=DECALER($I$1;1;;NBVAL(I:I)-1)

Cette plage "dynamique" grandira et se réduira en fonction du nombre de valeur présentes dans votre colonne

(attention à bien préciser les noms de feuilles pour éviter les erreurs)

si vous n'y arrivez pas, videz le dossier de toute données confidentielles et joignez le au message pour qu'on puisse l'écrire pour vous

Bonjour,

J'ai réussi à modifier la plage de référence (avec une méthode peu élégante et brutale, puisque j'ai tout simplement remplacé le nom "Max" par les coordonnées de la plage I2:I4666).

La dernière question que j'ai désormais est comment traiter les profils pour lesquelles les valeurs correspondent à des erreurs de connexion (ou un nombre de likes insuffisants pour que l'analyse par l'algorithme puisse réussir). Dans ces cas là, en effet, les valeurs des 5 traits de caractère retournées par l'algo sont 0 (comme on peut le voir dans la ligne 11 du tableau exemple).

Est-il possible dans ce cas là de modifier la formule dans la colonne I pour que si la valeur des 5 cases d'une ligne est 0, une 6e "capacité" (appelons là "erreur") soit créée et comptabilisée ?

Merci beaucoup !

Bonjour, oups, suis-je bête, je n'avais même pas percuté pour la ligne 11...

Avec cette formule

=SI(SOMME(B2:F2)=0;"Erreur";DECALER($A$1;;EQUIV(MAX(B2:F2);B2:F2;0);;))

on dit que si la somme de la plage b2:f2 = 0 alors on affiche "erreur", sinon on affiche la capacité max( notre formule ne change pas)

Donc cette formule est a copier en première cellule de votre colonne puis à étirer vers le bas.

Pour la répartition je pense que vous avez deviné que la formule sera la même que les autres...

Tout est parfait, problem solved.

Merci beaucoup pour votre aide infiniment précieuse et la rapidité avec laquelle vous avez répondu, à chaque fois !

you're welcome!

Rechercher des sujets similaires à "comparer valeurs determiner maximum compter occurrences"