Table des matières
Aujourd'hui, je vais vous montrer comment créer une liste dynamique basée sur un ou plusieurs critères dans Excel.
Télécharger le cahier d'exercices
Liste dynamique basée sur des critères.xlsx
Qu'est-ce qu'une liste dynamique dans Excel ?
Une liste dynamique est une liste créée à partir d'un ensemble de données et mise à jour automatiquement lorsqu'une valeur de l'ensemble de données original est modifiée ou que de nouvelles valeurs sont ajoutées à l'ensemble de données original.
Dans l'image donnée, nous avons une liste de noms de tous les étudiants qui ont obtenu des notes supérieures à 60 dans l'examen.
Maintenant, si vous changez les marques de Jennifer Marlo de 68 à 58 et ajoutez un nouvel étudiant appelé Ross Smith avec des notes 81 dans le tableau, la liste s'ajuste automatiquement.
C'est ce qu'on appelle une liste dynamique.
3 façons de créer une liste dynamique dans Excel basée sur des critères
Ici nous avons un ensemble de données avec le Cartes d'étudiant, Noms, et Marks de certains élèves dans une école appelée "Sunflower kindergarten".
Notre objectif aujourd'hui est de créer une liste dynamique basée sur les critères de cet ensemble de données. Nous utiliserons à la fois des critères simples et multiples.
1. utilisation des fonctions FILTER et OFFSET (pour les nouvelles versions d'Excel)
Tout d'abord, nous allons utiliser une combinaison de la FILTRE , OFFSET et COUNTA fonctions d'Excel.
Le site FILTRE est disponible dans Office 365 seulement. Donc c'est seulement pour ceux qui ont une Office 365 abonnement.
Cas 1 : basé sur un seul critère
Essayons de faire une liste dynamique des étudiants dont les notes moyennes sont supérieures ou égales à 60 .
Vous pouvez utiliser cette formule :
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Comme vous pouvez le voir, nous avons obtenu une liste de tous les étudiants qui ont obtenu plus que 60 .
Et évidemment, il s'agit d'une liste dynamique. Vous modifiez n'importe quelle valeur dans l'ensemble de données ou vous ajoutez n'importe quelle nouvelle valeur dans l'ensemble de données.
La liste s'ajuste automatiquement.
Explication de la formule :
COUNTA(C:C)
renvoie le nombre de lignes de la colonne C qui ne sont pas vides, doncCOUNTA(C:C)-1
retourne le nombre de lignes qui ont des valeurs sans l'indicateur En-tête de colonne ( Nom de l'élève dans cet exemple).- Si vous n'avez pas le En-tête de colonne utiliser
COUNTA(C:C)
OFFSET(C5,0,0,COUNTA(C:C)-1,1)
part de la cellule C5 (Nom du premier étudiant) et renvoie une plage de noms de tous les étudiants.- Le site OFFSET en combinaison avec la fonction Fonction COUNTIF a été utilisée pour que la formule reste dynamique. Si un élève supplémentaire est ajouté à l'ensemble de données, la formule de calcul de l'indice d'efficacité de l'enseignement (IEEE) sera modifiée.
COUNTA(C:C)-1
augmentera de 1 et le OFFSET comprendra l'étudiant. - De même,
OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60
renvoie à VRAI pour toutes les marques qui sont supérieures ou égales à 60 . - Enfin,
FILTRE(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
retourne une liste de tous les étudiants qui ont obtenu des notes supérieures à 60 . - Si un nouvel étudiant est ajouté à l'ensemble des données,
COUNTA(C:C)-1
augmente de 1 et le FILTRE rafraîchit le calcul en l'incluant. - Ainsi, la formule reste toujours dynamique.
Note :
Si vous souhaitez obtenir les marques en même temps que les noms dans la liste, il suffit de modifier le cinquième argument de la première commande OFFSET de la fonction 1 à 2 .
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Cas 2 : basé sur des critères multiples
Essayons plusieurs critères cette fois-ci.
Nous allons essayer de faire une liste dynamique des étudiants qui ont obtenu des notes supérieures ou égales à 60, mais dont les ID sont inférieurs ou égaux à 200 .
Vous pouvez utiliser cette formule :
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
Comme vous pouvez le voir, nous avons obtenu une liste de tous les étudiants qui ont eu des notes supérieures à 60 et ont ID s moins de 200 .
Et pas besoin de le dire, c'est une liste dynamique.
Si vous modifiez une valeur ou ajoutez un nouvel élève à l'ensemble des données, la liste s'ajuste automatiquement.
Explication de la formule :
- Ici, nous avons multiplié deux gammes de critères dynamiques,
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
- Si vous avez plus de 2 les critères, multipliez toutes les plages de critères de la même manière.
- Le reste est identique à l'exemple précédent (de critères uniques). L' OFFSET en combinaison avec la fonction COUNTA a été utilisée pour que la formule reste dynamique.
Note :
Si vous voulez voir toutes les colonnes de la liste ( Colonnes B, C, et D dans cet exemple), modifiez le premier argument de la première fonction OFFSET à la première colonne ( B5 dans cet exemple), et le cinquième argument au nombre total de colonnes ( 3 dans cet exemple).
=FILTER(OFFSET(B5,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
Lire la suite : Excel crée une liste dynamique à partir d'un tableau (3 méthodes simples)
2. Utilisation de INDEX-MATCH avec d'autres fonctions (pour les anciennes versions)
Ceux qui n'ont pas de Office 365 L'abonnement ne peut pas utiliser la formule ci-dessus.
Je présente une méthode plus complexe pour ceux qui utilisent une ancienne version d'Excel, en utilisant la fonction INDEX-MATCH, OFFSET, SMALL, IF, ROW, COUNTIF, et COUNTIFS d'Excel. Notez que ces formules sont des formules de tableau. Ainsi, pour les appliquer dans les anciennes versions d'Excel, vous devez appuyer sur la touche Ctrl+Shift+Enter au lieu de simplement entrer.
Cas 1 : basé sur un seul critère
La formule permettant de créer une liste dynamique des étudiants ayant obtenu une note supérieure ou égale à 60 sera la suivante :
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60,
OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)
Comme vous pouvez le voir, nous avons à nouveau obtenu les noms de tous les élèves qui ont obtenu un score supérieur ou égal à 60 .
Cette fois, nous avons obtenu dans l'ordre croissant des chiffres.
Et oui, la liste est dynamique. Ajoutez un nouvel élève à l'ensemble de données, ou modifiez les notes de n'importe quel élève de l'ensemble de données.
La liste s'ajuste automatiquement.
Explication de la formule :
- Ici C:C est la colonne de laquelle nous voulons extraire le contenu de la liste ( Nom de l'élève dans cet exemple). Vous utilisez le vôtre.
- D:D est la colonne où se trouve le critère ( Notes moyennes dans cet exemple). Vous utilisez le vôtre.
- C5 et D5 sont les cellules d'où partent mes données (juste en dessous du En-têtes de colonne ). Vous utilisez le vôtre.
- ">=60" est mon critère (supérieur ou égal à 60 dans cet exemple). Vous utilisez le vôtre.
- À part ces quelques modifications, gardez le reste de la formule inchangée et utilisez-la dans votre ensemble de données. Vous obtiendrez une liste dynamique selon le critère que vous souhaitez.
Cas 2 : basé sur des critères multiples
Le site INDEX-MATCH La formule pour la liste dynamique basée sur des critères multiples est un peu plus complexe, mais je la montre quand même.
La formule pour obtenir les noms des élèves qui ont obtenu des notes supérieures ou égales à 60 mais ont ID s moins de 200 le sera ;
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)
Explication de la formule :
- Ici C:C est la colonne de laquelle nous voulons extraire le contenu de la liste ( Nom de l'élève dans cet exemple). Vous utilisez le vôtre.
- B:B et D:D sont les colonnes où se trouvent les critères ( Numéro d'étudiant et Notes moyennes dans cet exemple). Vous utilisez le vôtre.
- B5, C5, et D5 sont les cellules d'où partent mes données (juste en dessous du En-têtes de colonne ). Vous utilisez le vôtre.
- J'ai multiplié ici deux critères :
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
Si vous avez plus de deux critères, multipliez-les en conséquence. - J'ai à nouveau utilisé les deux critères à l'intérieur de ce COUNTIFS fonction :
COUNTIFS(B:B,"=60")
. Vous utilisez les vôtres en conséquence. - Gardez le reste de la formule inchangée et utilisez-la dans votre ensemble de données. Vous obtiendrez une liste dynamique avec des critères multiples.
Lire la suite : Comment créer une liste dynamique de validation des données à l'aide de VBA dans Excel ?
3. créer une liste déroulante dynamique basée sur des critères en utilisant l'outil de validation des données.
Maintenant, nous avons créé la liste dynamique. Si vous le souhaitez, vous pouvez créer une liste déroulante dynamique dans n'importe quelle cellule de votre feuille de calcul.
- Pour créer la liste déroulante dynamique, sélectionnez n'importe quelle cellule de votre feuille de calcul et allez à Données> ; Validation des données> ; Validation des données en vertu de la Outils de données section.
- Vous obtiendrez le Validation des données Sous la fenêtre de dialogue Autoriser Option, choisissez Liste Et en vertu de la Source : saisissez la référence de la première cellule où se trouve la liste dans votre feuille de calcul, ainsi qu'un numéro d'identification de la liste. HashTag (#) ( $E$5# dans cet exemple).
- Cliquez ensuite sur OK Vous obtiendrez une liste déroulante dans la cellule sélectionnée, comme ceci.
Lire la suite : Comment créer une liste déroulante dynamique à l'aide de VBA dans Excel ?
Comment créer une liste unique dynamique dans Excel sur la base de critères ?
Dans cette section, nous allons montrer comment créer une liste unique dans Excel sur la base de critères. Nous allons utiliser une combinaison de UNIQUE et FILTRE fonctions. Nous avons modifié l'ensemble de données et ajouté les jeux préférés de chaque étudiant. Maintenant, nous voulons connaître le nom des jeux en supprimant les doublons avec des critères. Les critères sont les notes moyennes des étudiants doivent être supérieures à 60 .
📌 Des pas :
- Mettez la formule basée sur la combinaison de UNIQUE et FILTRE fonctions sur Cellule G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Nous obtenons une liste unique basée sur des critères.
Explication de la formule :
- FILTER(E5:E25,(D5:D25>60)
Cela permet de filtrer les valeurs de Gamme E5:E25 avec la condition que la moyenne des notes soit supérieure à 10 %. 60 .
Résultat : [Tennis, Volleyball, Rugby, Tennis, Football, Rugby, Rugby, Football].
- UNIQUE(FILTRE(E5:E25,(D5:D25>60)))
Cela renvoie toutes les valeurs uniques du résultat précédent.
Résultat : [Tennis, Volleyball, Rugby, Football].
Conclusion
En utilisant ces méthodes, vous pouvez créer une liste dynamique basée sur un ou plusieurs critères dans n'importe quel ensemble de données dans Excel. Veuillez consulter notre site web ExcelWIKI et donnez vos suggestions dans la boîte de commentaires.