J'ai obtenu n
Catégories qui tiennent m
Produits. Cette list n'est pas sortingée, par exemple comme ceci:
Maintenant, voici ce que je veux faire avec cette list:
Dropdown: Validation de données qui stocke dynamicment une list de chaque valeur unique de la première colonne (= Je ne pourrai pas sélectionner Category_5 puisqu'il n'existe pas encore).
Liste déroulante: fournissez une list de tous les produits en fonction de la catégorie sélectionnée dans la première list déroulante.
Existe-t-il une solution non-VBA pour cela?
Exemple de feuille de calcul:
A2:A13
– Liste des catégories, les éléments ne sont pas uniques B2:B13
– Liste des produits Cell D2
down – Liste déroulante 1 source, éléments uniques, dynamic Cell F2
down – Liste déroulante 2 item incremental number 1 .. (less de calculs dans la formule) Cell G2
down – Liste déroulante 2 source, dynamic Cell I2
– Cellule déroulante 1 Cell J2
– Cellule déroulante 2 Cell D2
: formule de tableau ( Ctrl – Shift – Entre de la window de la formule pour entrer, les brackets encrochés sont insérés par Excel, pas par un user), copiés vers le bas:
{=INDEX($A$2:$A$13;MATCH(0;COUNTIF($D$1:D1;$A$2:$A$13);0))}
Donne une list unique de catégories.
Cell G2
: formule de tableau, suivez les instructions de la section précédente:
{=INDEX($B:$B;SMALL(IF($A$2:$A$13=$I$2;ROW($A$2:$A$13);"");$F2))}
Donne une list de produits dans une catégorie sélectionnée dans la cellule I2
.
Les lists ne sont pas sortingées: mieux classr les lists initiales par catégorie et par produit.
Pas de error handling: les formules doivent être mises à jour avec la clause IF ISERROR
.
Dynamic_dropdown_lists.xls
Pour que cela fonctionne sans VBA en Excel, vous devriez avoir besoin de réinitialiser la gamme d'inputs valides pour la validation des données dans la Colonne 2 et puisque la source ne peut être qu'une list ou une gamme que vous devriez coder pour modifier lorsque la valeur Colonne 1 associée change.
Si vous ne voulez pas parcourir la route VBA, ces types d'activités sont du pain et du beurre pour une database comme Access (ou peut-être InfoPath) qui répond le mieux à vos besoins.