ElyxAI
validation

Comment Créer Multi-Level Cascading Liste déroulantes

Excel 2013Excel 2016Excel 2019Excel 365Excel Online

Apprenez à créer des listes déroulantes en cascade multi-niveaux qui filtrent automatiquement les options selon les sélections parentes. Cette technique de validation avancée crée des listes dépendantes où les menus secondaires affichent uniquement les choix pertinents, réduisant les erreurs et améliorant l'efficacité de la saisie de données.

Pourquoi c'est important

Les listes en cascade sont essentielles pour gérer les données hiérarchiques complexes en finance, RH et gestion des stocks, empêchant les entrées invalides et assurant la cohérence des données.

Prérequis

  • Compréhension de base des plages nommées Excel et de la validation des données
  • Connaissance des formules INDIRECT et INDEX/MATCH
  • Connaissance de l'organisation des feuilles et de la structure des données

Instructions étape par étape

1

Organisez vos données sources

Créez un tableau de référence avec les catégories parentes dans la première colonne et les sous-catégories dans les colonnes adjacentes. Par exemple : Colonne A contient les régions, Colonne B contient les pays par région.

2

Créez des plages nommées pour la liste parente

Sélectionnez les données de catégorie parente (p. ex. régions), puis allez à Formules > Définir un nom et nommez-la 'Region'. Répétez pour chaque niveau.

3

Créez des plages nommées pour les listes dépendantes

Pour chaque catégorie parente, sélectionnez ses données enfants correspondantes, allez à Formules > Définir un nom, et nommez-la exactement selon la valeur parente (p. ex. 'USA', 'Canada').

4

Appliquez la validation des données à la liste déroulante parente

Sélectionnez la cellule de la liste déroulante parente, allez à Données > Validation des données > Paramètres, choisissez 'Liste', et entrez la référence de plage nommée (=Region).

5

Appliquez la validation des données à la liste déroulante dépendante

Sélectionnez la cellule de la liste dépendante, allez à Données > Validation des données > Paramètres, choisissez 'Liste', et entrez =INDIRECT(Cellule_Parente) dans le champ source.

Méthodes alternatives

Utilisation d'INDEX/MATCH avec IFERROR

Au lieu d'INDIRECT, utilisez =IFERROR(INDEX(PlageEnfant, MATCH(CelluleParente, PlageParente, 0)), "") pour plus de contrôle dans les scénarios complexes.

En cascade à trois niveaux avec INDIRECT imbriqué

Empilez plusieurs formules INDIRECT pour créer trois niveaux ou plus, comme =INDIRECT(INDIRECT(PremierNiveau)&DeuxièmeNiveau).

Astuces et conseils

  • Utilisez des conventions de dénomination cohérentes pour les plages nommées pour éviter la confusion.
  • Masquez la feuille de données de référence pour éviter les modifications accidentelles.
  • Testez chaque niveau de liste déroulante indépendamment avant de mettre en œuvre la cascade complète.
  • Utilisez des noms descriptifs qui reflètent la hiérarchie des données (p. ex. 'USA_Etats', 'Canada_Provinces').

Astuces avancées

  • Combinez les listes en cascade avec la mise en forme conditionnelle pour mettre en évidence visuellement les combinaisons de données invalides.
  • Utilisez NBVAL pour créer des plages dynamiques qui s'agrandissent automatiquement à mesure que de nouvelles entrées sont ajoutées.
  • Appliquez la validation des données avec des messages d'erreur personnalisés (Données > Validation > Alerte d'erreur) pour guider les utilisateurs.
  • Créez une colonne d'aide avec CONCATENATE pour assurer que les noms parentes et enfants correspondent exactement.

Résolution de problèmes

La liste déroulante affiche toutes les options au lieu des résultats filtrés

Vérifiez que la formule INDIRECT référence la cellule parente correcte et que les noms de plages nommées correspondent exactement aux valeurs parentes (sensible à la casse).

Erreur #NAME? dans la formule de validation

Cela indique que la plage nommée n'existe pas ou est mal orthographiée. Allez à Formules > Gestionnaire de noms et vérifiez que toutes les plages nommées sont correctement créées.

La liste déroulante dépendante devient vide après changement de sélection parente

Assurez-vous que la nouvelle valeur parente a une plage nommée correspondante. Ajoutez la plage manquante via Formules > Définir un nom.

Impossible de créer une plage nommée avec des caractères spéciaux ou des espaces

Excel n'autorise pas les espaces ou la plupart des caractères spéciaux ; remplacez les espaces par des traits de soulignement ou utilisez le Gestionnaire de noms.

Formules Excel associées

Questions fréquentes

Puis-je créer plus de deux niveaux de listes déroulantes en cascade?
Oui, vous pouvez créer trois niveaux ou plus en imbriquant les formules INDIRECT ou en utilisant des combinaisons INDEX/MATCH. Chaque niveau supplémentaire nécessite une planification minutieuse de vos plages nommées et de votre structure de données.
Quelle est la différence entre INDIRECT et INDEX/MATCH pour les listes en cascade?
INDIRECT est plus simple pour les cascades de base à deux niveaux, mais nécessite une dénomination exacte des plages. INDEX/MATCH offre plus de flexibilité, ce qui le rend mieux adapté aux hiérarchies complexes. Choisissez en fonction de la complexité de votre structure de données.
Comment copier une liste déroulante en cascade vers d'autres cellules?
Sélectionnez la cellule avec la liste déroulante validée, copiez-la (Ctrl+C), sélectionnez la plage de destination, et collez (Ctrl+V). Excel ajustera automatiquement les références relatives.
Puis-je utiliser des listes en cascade avec les tableaux Excel?
Oui, vous pouvez référencer les colonnes de tableau Excel dans les formules de validation en utilisant la syntaxe de tableau (p. ex. =Tableau1[Catégorie]). Cela rend vos listes dynamiques.
Que se passe-t-il si un utilisateur tape manuellement au lieu de sélectionner dans la liste?
Par défaut, Excel autorise l'entrée manuelle. Pour l'empêcher, allez à Données > Validation des données > Paramètres et décochez 'Autoriser les entrées qui ne correspondent pas à la liste'.

C'etait une tache. ElyxAI en gere des centaines.

S'inscrire