XL 2013 filtre avancé

Appo1985

XLDnaute Occasionnel
bonjour à tous.
je voudrais dans le tableau qui se trouve sur la feuille résultat extraire la liste des écoles (tableau de la feuille bdd)
pour pouvoir remplir les autres colonnes .
merci par avance.
ci-joint le fichier:
 

Pièces jointes

  • tableau recapitulatif.xlsm
    99.3 KB · Affichages: 7
Solution
Est -ce le code qui insère les formules ou doit -je mètre les formules au niveau de la première ligne en laissant la première colonne si c'est un nouveau fichier ?
Une nouvelle version. Les formules s'insèrent automatiquement.
Il suffit sur un nouveau fichier de changer les indices des deux tableaux ( Tableau2 et Tableau3 ), en fonction des indices des nouveaux tableaux.
VB:
Sub Worksheet_Activate()
'Sur un nouveau fichier changez les N° 2 et 3 des tableaux
    F1 = "=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];""M"";Tableau2[Moyenne];"">=5"")"
    F2 = "=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];""F"";Tableau2[Moyenne];"">=5"")"
    F3 = "=Tableau3[[#Cette ligne];[Masculin]]+Tableau3[[#Cette...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Appo,
Un essai en PJ avec :
VB:
Ecole :
=SIERREUR(INDEX(Tableau2[Ecole];PETITE.VALEUR(SI(FREQUENCE(SI(Tableau2[Ecole]<>"";EQUIV(Tableau2[Ecole];Tableau2[Ecole];0)); LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNES(resultat!$C$8:C8)));"")
( à valider par Maj+Ctrl+Entrée car matricielle )
Masculin :
=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"M";Tableau2[Moyenne];">=5")
Feminin :
=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"F";Tableau2[Moyenne];">=5")
 

Pièces jointes

  • tableau recapitulatif.xlsm
    39.7 KB · Affichages: 6

Phil69970

XLDnaute Barbatruc
Bonjour à tous

je propose

Ecole :
=SOMME(1/NB.SI(Tableau2[Ecole];Tableau2[Ecole]))
A valider par MAJ + CTRL + Entrée

Masculin :
=NB.SI.ENS(Tableau2[Sexe];"M";Tableau2[Moyenne];">=5")

Féminin :
=NB.SI.ENS(Tableau2[Sexe];"F";Tableau2[Moyenne];">=5")
1704536936067.png
 

Pièces jointes

  • tableau recapitulatif.xlsm
    41.8 KB · Affichages: 3

Appo1985

XLDnaute Occasionnel
Bonjour Appo,
Un essai en PJ avec :
VB:
Ecole :
=SIERREUR(INDEX(Tableau2[Ecole];PETITE.VALEUR(SI(FREQUENCE(SI(Tableau2[Ecole]<>"";EQUIV(Tableau2[Ecole];Tableau2[Ecole];0)); LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNES(resultat!$C$8:C8)));"")
( à valider par Maj+Ctrl+Entrée car matricielle )
Masculin :
=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"M";Tableau2[Moyenne];">=5")
Feminin :
=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"F";Tableau2[Moyenne];">=5")
C'est exactement ce que je voudrais. Grandement merci
 

Appo1985

XLDnaute Occasionnel
Bonjour Appo,
Un essai en PJ avec :
VB:
Ecole :
=SIERREUR(INDEX(Tableau2[Ecole];PETITE.VALEUR(SI(FREQUENCE(SI(Tableau2[Ecole]<>"";EQUIV(Tableau2[Ecole];Tableau2[Ecole];0)); LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNES(resultat!$C$8:C8)));"")
( à valider par Maj+Ctrl+Entrée car matricielle )
Masculin :
=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"M";Tableau2[Moyenne];">=5")
Feminin :
=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"F";Tableau2[Moyenne];">=5")
J'ai une question.
J'ai essayé mais il faut a partir de la première ligne tirer la formule pour avoir la liste de toutes les écoles.
Comme il n'y pas de limite de nombre d'écoles n'y t'il pas un moyen pour remplir la première colonne automatique quand on actuellement le tableau bdd?
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re-,
Annule pour le TS, il est déjà créé, et se nomme Tableau2
Pour le TCD, tu cliques dans la cellule A3 (par exemple), et tu fais "Insertion/Tableau croisé dynamique"
Tu choisis l'endroit pour le placer, et tu places les filtres ainsi :
1704547449030.png


Puis tu fais le filtre pour la moyenne :
Tu cliques sur le filtre Etiquettes de lignes, et juste dessous, tu sélectionne "Moyenne"
1704547521568.png

Et tu mets un filtre s'appliquant aux étiquettes, "Supérieur ou égal à.." tu mets 5
1704547589691.png

Une fois fait, pour masquer les moyennes, tu fais un clic droit sur la première école, "Développer/Réduire", "Réduire le champ entier"

1704547747651.png


Et voilà
Bon courage
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Comme il n'y pas de limite de nombre d'écoles n'y t'il pas un moyen pour remplir la première colonne automatique quand on actuellement le tableau bdd?
Un essai en PJ avec :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    On Error Resume Next
    [Tableau3].ListObject.DataBodyRange.Delete
    T = [Tableau2]
    Range("Tableau3[Ecole]").Resize(UBound(T, 1)) = Application.Index(T, , 4)
    ActiveSheet.ListObjects("Tableau3").DataBodyRange.RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
Les colonnes 2,3,4 conservent les formules.
La mise à jour est automatique en sélectionnant la feuille "resultat".
 

Pièces jointes

  • tableau recapitulatif(V2).xlsm
    43.3 KB · Affichages: 3

Appo1985

XLDnaute Occasionnel
Re,

Un essai en PJ avec :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    On Error Resume Next
    [Tableau3].ListObject.DataBodyRange.Delete
    T = [Tableau2]
    Range("Tableau3[Ecole]").Resize(UBound(T, 1)) = Application.Index(T, , 4)
    ActiveSheet.ListObjects("Tableau3").DataBodyRange.RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
Les colonnes 2,3,4 conservent les formules.
La mise à jour est automatique en sélectionnant la feuille "resultat".
Bonsoir . Merci bien .
ce que je voudrais c'est effectivement ça. Pour que l'utilisateur qui ne maîtrise pas excel puisse avoir le résultat.
Est -ce le code qui insère les formules ou doit -je mètre les formules au niveau de la première ligne en laissant la première colonne si c'est un nouveau fichier ?
 

Statistiques des forums

Discussions
314 626
Messages
2 111 291
Membres
111 092
dernier inscrit
ThomasU3