web-dev-qa-db-fra.com

Référence dynamique à une colonne de table nommée (via le contenu de la cellule) dans Excel

Comment référencer une colonne de tableau Excel de manière dynamique dans Excel 2007? Je veux référencer une colonne nommée d'une table nommée et la colonne référencée variera avec la valeur d'une cellule.

J'ai un tableau dans Excel (appelons-le Table1 ). Je veux faire référence à l'une de ses colonnes et COUNT thenumbers dans cette colonne. Je souhaite identifier la colonne référencée de manière dynamique à partir d'une valeur d'une autre cellule (A1) afin d'obtenir le résultat suivant: Lorsque je modifie A1, la formule qui compte Table1 [ DynamicallyReferencedColumnName ] est mis à jour avec la nouvelle référence.

Exemple:

  • Si A1 = names, la formule serait égale à COUNT(Table1[names]).
  • Si A1 = lastname, la formule serait égale à COUNT(Table1[lastname]).

J'ai essayé d'utiliser =COUNT(Table1[INDIRECT("$A$1")]), mais Excel indique que la formule contient une erreur.

Comment puis-je faire ceci?


P.S. J'ai trouvé ce document MSDN qui pourrait être pertinent: recalcul Excel .

12
rcphq

Vous l'avez presque eu avec INDIRECT(), mais votre logique était un peu floue. Essayez ceci à la place:

=COUNT(INDIRECT("Table1["&A1&"]"))

La clé à retenir est que INDIRECT() ne prend que du texte (c'est-à-dire une chaîne) pour le premier argument. Ainsi, vous devez transmettre toutes les parties de la table à la fonction sous forme de texte.

11
Excellll

L'utilisation de la méthode INDIRECT fonctionne, mais il est préférable d'éviter cette action autant que possible car il s'agit d'une fonction volatile et peut avoir un impact considérable en termes de calcul sur votre feuille de calcul.

Une alternative non volatile qui accomplit ce que vous voulez est d'utiliser INDEX/MATCH

COUNT(INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)))

-Tim

13
Tim Reczek

première étape, configurez une cellule de texte contenant le nom de la colonne à laquelle vous souhaitez faire référence (par exemple $ A $ 1) $ A $ 1 contient par exemple "Colonne2".

alors pour trouver le compte de la colonne auquel $ A $ 1 fait référence serait = Count (indirect ("Table1 [" & $ a $ 1 & "]"))

cette méthode indirecte peut être utilisée pour construire toutes les parties de la référence de table et peut par exemple également être arrangée pour rechercher dans différentes tables

pointe. si les cellules $ a $ 1 sont validées en tant que liste déroulante pointant vers les en-têtes de la table unique, toutes les modifications apportées au nombre de colonnes dans la table, ainsi que les modifications apportées aux titres des en-têtes, seront collectées.

2
Thompson.Steve.J

Voici un très bon article concernant les références structurées dans Excel. Il semblerait que cela fonctionne un peu différemment dans Excel 2010 par rapport à Excel 2007.

Utilisation de références structurées avec des tableaux Excel

Fondamentalement, vous allez référencer la table, puis la colonne dans la table.

Generic Excel Table

Dans cet exemple, vous pouvez référencer le tableau 1 colonne 1 comme suit:

=COUNT(Table1[Column1])

Vous pouvez nommer les colonnes d'en-tête dans votre table. Si je renommais Column1 en Ventes, la formule deviendrait:

=COUNT(Table1[Sales])
1
wbeard52