bonjour
pas facile
1) regarde dans gestionnaire de noms (j'ai utilisé des noms simples bien représentatif
2) on commence par extraire les catégories sans double et eventuellement par ordre alphabétique (extract catégorie ) la formule est matricielle
on nomme cette plage dans gestionnaire de nom :listecaté
3) au droit (en laissant une colonne vide pour plus tard ) on extrait aussi sans double les sous catégories ayant comme critère celui de Extract catégorie
on passe par Equiv qui renvoie la premiere position de chaque sous catégorie "eligible" ,une fois comparé au n° de ligne de la plage ,si la position ne correspond pas au n° de ligne , on ne garde pas
c'est Petite.valeur qui extrait une par une ces positions gardées 1ère position ;2ièeme position ............. grace à COLONNE
4) dans la colonne vide on comptera le nb de valeur extraites pour chaque ligne ;ça sert à dimensionner la liste de choix des sous catégories (NB.SI(....;"><")
on en profite pour nommer la plage extract et la colonne qui compte : dans gestionnaire de noms , c'est "combien " qui sert à dimenssionner la liste
Utilisation de tout ça
pour le choix de la catégorie
Donnée >>validation>>liste = listecaté
pour la sous catégorie
1) vu que l'on va utiliser Décaler , il faut indiquer un point "pivot" ; dans gestionnaire de noms ,c'est " dept"
2)Données>>validation >liste et là une formule
=decaler(le pivot; de x lignes (c'est la position du choix de catégorie dans la liste souscaté) ;;;pour un nombre de colonnes obtenu par recherchev dans "combien"
Et finalement
pour extraire les produits on utilise encore une matricielle qui selectionnera les n° de ligne qui correspondent à la croisée (*) des deux critères de choix
comme d'hab , c'est Petite. valeur qui extrait ligne/ligne