Recherche de données dans une colonne (sans doublon) et nombre d'occurence de chaque valeur
#1
Aspirant XLPages

Inscription: 01/09/2010

Messages: 26

Système d'exploitation:
PC
Version Excel utilisée:
Excel 2000
Posté le : 31-03-2011 15h56
Bonjour à tous,

j'ai créé un tableau contenant des nom et des notes. Au bout de chaque ligne, la moyenne de chaque élève est calculée.

Je souhaiterai créer un tableau récapitulatif qui me récupèrerait dans une ligne un exemple de chaque moyenne (sans doublon) et dans la ligne en dessous le nombre d'occurence de chaque moyenne.

En cherchant sur le net j'ai vu la fonction Index, mais je n'arrive pas à la faire fonctionner.

Est-ce que vous auriez une idée pour m'aider, svp ?

Pour que ma demande vous paraisse plus claire je vous mets en pièce jointe un tableau très simplifié par rapport au tableau initial.

Je vous remercie de l'aide que vous pourrez m'apporter.

Althéa


Pièce jointe:
xls test index.xls   [ Taille: 13.50 Ko - Téléchargements: 650 ]
Hors Ligne
Rapport   Haut 

Re: Recherche de données dans une colonne (sans doublon) et nombre d'occurence de chaque valeur
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 01-04-2011 23h16
Bonsoir Althéa, le Forum,

Ouf, enfin le week-end... pas facile de trouver un peu de temps libre pour participer un peu au forum

Sinon, tu trouveras en pièce jointe une tentative de réponse exclusivement à base de Formules de calcul (j'imagine que c'est ce que tu souhaitais)... Ca semble répondre à ta demande et j'espère que ça pourra t'aider et/ou te mettre sur la bonne voie.

Les Formules de feuille de calcul n'étant décidément pas ma tasse de thé, tu m'excuseras de ne pas être capable de t'expliquer le fonctionnement. En toute honnêteté : j'ai mis en place ces formules « à l'arrachée » et après une tonne de recherches sur le net... Un bon mal de crâne en récompense lol !


Cela dit, j'espère quand même qu'un(e) spécialiste formule passera dans le coin pour simplifier un peu la chose, voire même, nous l'expliquer ! 

Je pense notamment à un spécialiste de la fonction FREQUENCE() dont je suis quasi-sûr de l'intérêt ici (je parle de l'intérêt de la fonction hein ?... Pas de l'intérêt du spécialiste ! )


Cordialement,

Pièce jointe:
zip PourAlthéa.zip   [ Taille: 5.16 Ko - Téléchargements: 744 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Recherche de données dans une colonne (sans doublon) et nombre d'occurence de chaque valeur
#3
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 02-04-2011 07h44
Bonjour Althéa, Didier

Didier chapeau, pour tes recherches et la mise en application, j'imagine la prise de tête tour toi.

Pour éviter la formule matricielle (celle qui sont valider par Ctrl+Shift+Entrer) et qui n'est pas forcément utile dans le cas présent. On pourrait rajouter une colonne à ton tableau de notes. La formule dans cette colonne retournerait une valeur croissante, qui représenterait la valeur d'ordre de l'occurence.
Donc dans l'exemple indiqué, je rajoute en cellule G2, une des deux formules au choix.
=SI(EQUIV(F2;F:F;0)=LIGNE();MAX(G$1:G1)+1;"")
ou
=SI(NB.SI(F$1:F1;F2)=0;MAX(G$1:G1)+1;"")
et je fais un glisser déposer sur le reste du tableau.
Le principe de cette formule est d'afficher une valeur numérique quand la moyenne (n) est inconnue dans le tableau des moyennes précédentes.
Je te conseille si tu as de très grand tableau la première formule, EQUIV() sera plus rapide que NB.SI().
Si tu te poses la question sur les symboles $ clique sur le lien Références Relatives & Absolues

Avant d'aller plus loin, je dois te mettre en garde, dans ton exemple pour les valeurs moyennes, tu as fixé délibérement le nombre de décimale à 1, ce n'est qu'un format d'affichage, en réalité, les décimales sont bien présentes. 
Pour remédier à ce problème tu as deux solutions, faire un arrondi dans la moyenne, ou aller dans les options d'excel et de cocher "calcul avec la précision au format affiché" qui se trouve dans l'onglet calcul de la boîte de dialogue du menu Outils/Options... (en version 2003). Attention l'utilisation de cette option concernera la globalité des formules du classeur.
Pour la formule en F2 devient,
=ARRONDI(MOYENNE(B2:E2);1)
et tu fais un glisser déposer sur le reste du tableau.

Ensuite il reste à adapter le tableau en lignes 12:13. Le couple INDEX(;EQUIV();) devrait faire l'affaire.
Pour afficher les occurences uniques des différentes moyennes, en cellule A12, la formule
=INDEX($F:$F;SI(COLONNE(A1)>MAX($G:$G);1;EQUIV(COLONNE(A1);$G:$G;0));1)
et un glisser vers la droite.
Si tu colles la formule en E12, tu vas avoir un beau moyenne qui va être retourné par la formule. Dans le cas présent tu peux jouer avec les formats d'affichage personnalisé, Créer un format personnalisé pour la ligne 12, et indique ceci standard;;;"".

Pour le nombre d'occurences pour chaque moyenne, en ligne 13, la fonction NB.SI() est utilisable.
Si tu analyses la formule indiquée pour la colonne G, tu ne devrais pas avoir de problème pour l'écrire.
Dans son post Didier parle de la fonction FREQUENCE, pour moi c'est la fonction à utiliser. 


La formule FREQUENCE :
Pour la mise en oeuvre, la premiére particularité, est la validation. Tout le monde connait le "enter" pour valider le calcul de la formule, mais pour cette formule on devra valider par la combinaison de touche Ctrl+Shift+Enter. Une validation par enter n'affichera que la première valeur.
Deuxième particularité, avant de saisir la formule il faut sélectionner une plage de cellules non discontinues, et généralement sous forme verticale et d'une seule colonne, rien ne sert d'avoir x colonnes. Le nombre de cellules sélectionnées a une importance, insuffisante des valeurs de la "matrice" ne seront pas affichées, trop longue un message #N/A sera affiché dans les cellules superflues.
La longueur dépend de la longueur du deuxième argument que l'on passe à la fonction, mais elle sera toujours supérieure d'une unitée.
Attention, l'emploi des fonctions matricielles interdit l'insertion ou la suppression de cellules à l'intérieur de la plage sélectionnée lors de la validation de la formule. Un message d'erreur sera affiché par Excel.

La "matrice" correspond à un tableau en mémoire, le fait de valider par la combinaison de touches, permet à Excel d'afficher le contenu de la matrice.
Une formule =SOMME(FREQUENCE(;)) n'a pas besoin d'être validé par la combinaison Ctrl+Shift+Enter, la fonction SOMME ne retournant qu'une seulle valeur.

Une matrice est comme une plage de cellules, mais celle-ci est en mémoire, elle n'a pas de représentation graphique, elle est éphémère. Si tu veux connaître le nombre Mini (1) et le Maxi des occurences des moyennes, les formules =MINI(FREQUENCE(;)) et =MAXI(FREQUENCE(;)), te les donnerons, mais la matrice sera calculée deux fois, si par contre tu bascules le contenu sur des cellules ce qui est fait en A13:D13, puis =MAX() et MIN(). Tu n'as demandé qu'un seul calcul de la matrice à Excel. A ce niveau si l'on comprend ce que je veux dire, tu touches du doigt toute la complexité de la mise en oeuvre des formules dans les feuilles de calcul, à savoir faire des formules ayant des fonctions imbriquées ou des décompositions avec des cellules intermédiaires.

Les quelques fonctions matricielles d'Excel retounent une matrice sous forme verticales, dans ton exemple, la matrice est horizontale. Tu n'es pas obligé de transformer ton tableau. Tu peux utiliser la fonction TRANSPOSE(), elle est identique au collage spécial... (option transposé)

Autre point l'argument intervalle

Les valeurs du deuxième argument, n'ont pas besoin d'être triées dans un ordre croissant. La fonction sans accomodant très bien, et c'est une de ces très grandes puissances, c'est génial.


Particularité, si deux valeurs sont identiques, la deuxième valeur aura comme nombre d'occurences 0. Grace à cette particularité on peut calculer le nombre de valeurs uniques dans la plage.

Autre particularité, le comparateur utilisé par cette fonction. Dans ton exemple, chaque valeur de l'argument 1 sera égale à une valeur de l'argument 2. 
Si j'avais à d'écrire le cas d'emploi de cette fonction, l'exemple le plus simple serait dans le calcul de la pyramide des âges de population en 2274 (l'Age de cristal) . =FREQUENCE(AGE;{5;10;15;20;25})
Prenons le cas :
  • foetus ans, sera comptabilisé dans la valeur 1 de la matrice retournée, supérieure Int(n-1) et inférieure ou égale Int(n), Infini>x<=Int
  • 6 ans, sera comptabilisé dans la valeur 2 de la matrice retournée, supérieure Int(n-1) et inférieure ou égale Int(n), Int(-1)>x<=Int
  • 20 ans, sera comptabilisé dans la valeur 4 de la matrice retournée, supérieure Int(n-1) et inférieure ou égale Int(n), Int(-1)>x<=Int
  • 30 ans, sera comptabilisé dans la valeur 6 de la matrice retournée, supérieure Int(n-1) et inférieure ou égale Int(n), Int(-1)>x>=Infini


Bref, revenons à ton classeur, voici la formule pour la plage A13:D13
=TRANSPOSE(FREQUENCE(F:F;A12:D12))



(1) les matheux dirons, pas besoin de la formule, le mini sera toujours à 1, et bien avec la formule il sera égal à 0. Pourquoi ?
J'ai dis que la fonction rajoutai à la longueur du 2ème argument une valeur, elle correspond au nombre de valeurs supérieures à la valeur max du 2ème argument, et celle-ci sera égale à 0. Ou si une moyenne est présente plus d'une fois.

@+Jean-Marie 

Hors Ligne
Rapport   Haut 

Re: Recherche de données dans une colonne (sans doublon) et nombre d'occurence de chaque valeur
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 02-04-2011 10h30
Bonjour Althéa, cher ami JeanMarie ,

Wouaaoouuu ... c'est bien ce que j'appelle une réponse XLpages comme je les aime, ça !
Bravo, bravo pour l'analyse et l'explication (un vrai tutorel !)

D'ailleurs, j'en profite pour remercier les principaux intervenants du présent site (comme toi JeanMarie, Guy ou Mth par exemple) pour les efforts consentis à rendre vos posts bourrés d'explications. C'est bien là, la particularité de notre communauté et dont l'intérêt est avant tout pédagogique !

Promis, pour ma part, je m'autorise une seconde prise de tête dans la journée pour tenter de comprendre une partie du mystère « formule » sur ce coup là !

Merci JeanMarie

Bien cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Recherche de données dans une colonne (sans doublon) et nombre d'occurence de chaque valeur
#5
Aspirant XLPages

Inscription: 01/09/2010

Messages: 26

Système d'exploitation:
PC
Version Excel utilisée:
Excel 2000
Posté le : 04-04-2011 22h17
Bonsoir Didier, bonsoir Jean-Marie, bonsoir le forum

je n'ai pas pu me reconnecter plus tôt, je découvre donc avec plaisir que vous avez pu m'aider une fois de plus.

Jean-Marie, tes explications sont très complètes, mais ce n'est pas à 22 heures passées que je pourrai les comprendre ... lol

Je relirai donc tes explications demain et j'espère ne pas m'arracher tous les cheveux qui me restent pour comprendre.

Didier, je vais tester ta formule sur mon vrai tableau qui contient plus de 80 élèves, mais je pense que cela devrait bien fonctionner.

De mon côté j'avais essayé avec un tableau croisé dynamique, mais bizarrement, 2 occurrences ne sont jamais comptabilisées. J'ai donc déjà commencé à m'arracher les cheveux ... lol.

Je vous remercie pour votre aide 

bonne soirée

Althéa

Hors Ligne
Rapport   Haut 

Re: Recherche de données dans une colonne (sans doublon) et nombre d'occurence de chaque valeur
#6
Aspirant XLPages

Inscription: 01/09/2010

Messages: 26

Système d'exploitation:
PC
Version Excel utilisée:
Excel 2000
Posté le : 06-04-2011 08h49
Bonjour Didier, bonjour Jean-Marie et bonjour le forum

hier j'ai lu avec attention vos réponses.

Jean-Marie je te remercie pour tes explications très détaillées, mais la fonction FREQUENCE malgré tes explications, reste pour moi un mystère, je n'ai pas réussi à la faire fonctionner sur mon vrai tableau.  
Par contre tes autres formules fonctionnent à merveille. Je te remercie sincèrement de ton aide.

Didier, merci pour ton fichier mais je n'ai pas réussi à appliquer ta formule sur mon tableau. Il faut dire qu'il contient 84 cellules dans la colonne "moyennes" qui sont en fait des fusions de 5 cellules à chaque fois. Peut-être est-ce à cause des cellules fusionnées que cela ne marche pas ?

Quoi qu'il en soit je vous dis encore mille mercis pour votre aide. Sans vous mes demandes parfois alambiquées resteraient sans réponse.

Bonne journée

Althéa




Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes