Référence dynamique d'une colonne de table nommée (via un contenu de cellule) dans Excel

Comment référencer une colonne de table Excel de manière dynamique dans Excel 2007? Je veux faire référence à une colonne nommée d'une table nommée et la colonne référencée varie en fonction de la valeur d'une cellule.

J'ai un table dans Excel (appelons-le Table1 ). Je veux faire référence à l'une de ses colonnes et COUNT les chiffres dans cette colonne. Je veux identifier la colonne référencée de manière dynamique à partir d'une valeur dans une autre cellule ( A1 ) afin que je puisse obtenir le résultat suivant: Lorsque je change A1 , la formule qui compte le Tableau 1 [ DynamicallyReferencedColumnName ] est mise à jour sur 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 dit que la formule contient une erreur.

Comment puis-je faire ceci?


PS J'ai trouvé ce document MSDN qui peut être pertinent: recalculation Excel .

Vous l'avez presque pris avec INDIRECT() , mais votre logique était un peu éteinte. 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 passer toutes les parties de la référence du tableau à la fonction en tant que texte.

L'utilisation de la méthode INDIRECT fonctionne, mais il est préférable d'éviter chaque fois qu'il est possible car il s'agit d'une fonction volatile et peut avoir un impact massif sur votre tableur.

Une alternative non volatile qui accomplit ce que vous voulez consiste à utiliser INDEX / MATCH

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

-Tim

La première étape consiste à configurer une cellule de texte qui contient le nom de la colonne à laquelle vous référer (par exemple $ A $ 1) $ A $ 1 contient "Column2" par exemple.

Ensuite, pour trouver le nombre de la colonne dont $ A $ 1 se réfère à = Count (indirect ("Table1 [" & $ a $ 1 & "]"))

Cette méthode indirecte peut être utilisée pour construire toutes les parties de la référence de la table et peut par exemple être agencée pour la recherche à partir de différents tableaux

pointe. Si la cellule $ a $ 1 est validée sous forme de liste déroulante qui indique les en-têtes de la table unique, toutes les modifications apportées au nombre de colonnes dans le tableau de toute modification des titres d'en-tête seront récupérées.

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

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

Fondamentalement, vous ferez référence au tableau, puis à la colonne dans le tableau.

Table Generic Excel

Dans cet exemple, vous pouvez faire référence au Tableau 1: colonne 1 comme ceci:

 =COUNT(Table1[Column1]) 

Vous pouvez nommer les colonnes d'en-tête dans votre table. Si j'ai renommé Column1 to Sales, la formule deviendrait:

 =COUNT(Table1[Sales])