Afficher les 3 valeurs les plus présentes sous conditions

pierre64200 Messages postés 22 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
Bonjour,
Voici mon problème, je voudrais afficher, pour la semaine 1 (colonne A), les 3 valeurs les plus présentes de la colonne B. Et ainsi de suis pour la semaine 2.
J'ai essayé avec un =SI(A1:A..=1;MODE.MULTIPLE(B1:B..);"") mais cela ne marche pas.

Petit exemple:


Merci pour votre aide !

2 réponses

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour pierre

    Tu peux utiliser des formules matricielles (à valider apr CTRL+MAJ+Entrée , la formule se met alors automatiquement entre {} dans la barre de formule)

    Formules matricielles empruntées à Jacques Boisgontier sur son site :

    En D1 : =INDEX($B$1:$B$10;MODE(EQUIV($B$1:$B$10;$B$1:$B$10;0)))
    En D2 : =INDEX($B$1:$B$9;MODE(SI(($B$1:$B$9<>D1);EQUIV($B$1:$B$9;$B$1:$B$9;0))))
    et en D3 : =INDEX($B$1:$B$9;MODE(SI(($B$1:$B$9<>D1)*($B$1:$B$9<>D2);EQUIV($B$1:$B$9;$B$1:$B$9;0))))

    Cdlmnt
    Via

    1
    1. pierre64200 Messages postés 22 Statut Membre
       
      Bonjour Via,
      Merci pour ton aide.
      Mon problème est que toutes mes données, de la semaine 1 à la semaine 52 sont dans le même tableau, et j'aimerais afficher les 3 valeurs les plus présentes pour chaque semaine. Tu ne vois pas une variante possible de ta formule pour mettre une condition de numéro de semaine ?
      Encore merci
      Bonne journée

      Pierre
      0
      1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759 > pierre64200 Messages postés 22 Statut Membre
         
        Bonjour Pierre

        En supposant les semaines en A, les valeurs en B sur 1000 lignes
        En mettant en D1, E1 etc les n°s de semaines 1, 2, etc
        en D2 la formule matricielle:
        =INDEX($B$1:$B$1000;MODE(SI(($A$1:$A$1000=D$1);EQUIV($B$1:$B$1000;$B$1:$B$1000;0)))) à étirer ensuite vers la droite
        en D3 la matricielle :
        =INDEX($B$1:$B$1000;MODE(SI(($B$1:$B$1000<>D2)*($A$1:$A$1000=D$1);EQUIV($B$1:$B$1000;$B$1:$B$1000;0))))
        etc

        Bonne journée également
        Via
        0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Une autre façon via (salut cordial à 55 en passant) une macro
    http://www.cjoint.com/c/FGupHz56hqd

    Alt-F11 pour accéder au code

    Cdlmnt
    0