Re: les quartés |
Titre du sujet : Re: les quartés par JeanMarie le 15/02/2013 10:21:57 Bonjour Jad73, Didier, le Forum Pour commercer, Je pense qu'Eric ou Mireille aimerait un petit retour sur ton dernier fil. Pour ton fil, cela ne pas être simple de tout expliquer. Premier point, je pense que tu as une erreur dans la définition dynamique de tes plages BdD et ColA, la soustraction -1 te fait perdre une ligne de donnée, est-ce voulu ?. Je te conseille d'utiliser NB à la lace de NBVAL Ce qui donne pour BdD =DECALER(Feuil1!$A$2;;;NB(Feuil1!$A:$A);20) =DECALER(Feuil1!$A$2;;;NB(Feuil1!$A:$A);20) Tu utilises la fonction NB.SI qui comptabilise le nombre d'occurrence d'une valeur dans une plage, et tu répètes donc cette formule 70 fois, mais tu as une autre fontion qui fera le même travail, d'ailleurs tu l'utilises par la suite, c'est la fonction FREQUENCE. Pour mettre en oeuvre cette formule, il faut avant de la saisir, il faut au préalable sélectionner la plage de cellules qui permettra de recevoir la "matrice" retournée par FREQUENCE. Dans ton fichier, sélectionne la plage X2:X71, puis tape dans la zone de saisie la formule =FREQUENCE(BdD;W2:W71) Cela va afficher les occurrences des valeurs de 1 à 70 qui sont présentes dans la plage DdB. Ensuite il faut déterminer la valeur de la cellule AC1, tu peux utiliser la formule =EQUIV(MAX(X:X);X2:X71;0) Voilà on vient de déterminer la valeur du 1er Niveau Passons à la suite, tu utilises une formule à base de SOMMEPROD(FREQUENCE;FREQUENCE) qui ne retournera qu'une seule valeur, donc tu dois aussi la répéter 70 fois. Je te propose encore une fois une formule qui fera le même travail mais pour la globalité des valeurs à tester, et surtout en une seule fois. Tourjours basée avec la fonction FREQUENCE. Dans ta formule =SOMMEPROD(FREQUENCE(SI(BdD=AC$1;LIGNE(colA));LIGNE(BdD));FREQUENCE(SI(BdD=AB2;LIGNE(colA));LIGNE(BdD))) =FREQUENCE(SI(FREQUENCE(SI(BdD=AC1;LIGNE(colA);"");LIGNE(colA));SI(BdD=AC1;"";BdD));$W2:$W71)=SI(FREQUENCE();BdD;"") SI(FREQUENCE();SI(BdD=AC1;"";BdD)) La formule pour connaître la valeur de la cellule AJ reste la même, il suffit d'adapter la plage de la fonction MAX. Voilà pour le deuxième niveau, passons aux prochains niveaux Même procédé il faut isoler les lignes contenant les valeurs à comptabiliser, mais il faut rajouté ou modifier notre formule du 2ème niveau pour isoler non pas par rapport à une valeur met par x valeurs. On ne peut pas utiliser les fonctions OU ou ET, une seule méthode à ma connaissance, la fonction NB.SI. Avec une particularité ce n'est pas les valeurs retournées dans les différents niveaux qui sera la plage des critères mais les valeurs de la plage BdD Voilà la formule de la colonne AI : =FREQUENCE(SI(FREQUENCE(SI(NB.SI(AI1:AJ1;BdD);LIGNE(colA);"");LIGNE(colA))=2;SI(NB.SI(AI1:AJ1;BdD);"";BdD));$W2:$W71) Outre la modification des deux NB.SI, tu peux observer que j'ai rajouté le teste d'un comparateur =2 sur la matrice des n° des lignes retournée par FREQUENCE. Cela permet de ne prendre en compte que les lignes contenant les valeurs des 2 niveaux. Même mise en oeuvre. |
Forums