Dynamic Data Validation in Excel (Non-VBA!)

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:

  1. 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).

  2. 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 ( CtrlShiftEntre 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.