Динамічно посилайтеся на стовпчик іменованих таблиць (через вміст комірки) в Excel


12

Як динамічно посилатися на стовпець таблиці Excel у Excel 2007? Я хочу посилатись на названий стовпчик іменованої таблиці, і посилається стовпець буде змінюватися залежно від значення комірки.

У мене є таблиця в Excel (назвемо це Table1 ). Я хочу посилатися на один із його стовпців та COUNTцифри в цьому стовпчику. Я хочу ідентифікувати посилається стовпець динамічно зі значення в іншій комірці ( A1), щоб я міг досягти наступного результату: Коли я змінююсь A1, формула, що рахує Таблиця1 [ DynamicallyReferencedColumnName ], оновлюється до нової посилання.

Приклад:

  • Якщо A1= names    тоді формула дорівнювала б COUNT(Table1[names]).
  • Якщо A1= lastnameтоді формула дорівнювала б COUNT(Table1[lastname]).

Я намагався використовувати =COUNT(Table1[INDIRECT("$A$1")]), але Excel каже, що формула містить помилку.

Як я можу це зробити?


PS Я знайшов цей документ MSDN, який може бути актуальним: Перерахунок в Excel .


Яку версію Excel ви використовуєте?
CharlieRB

Наразі використовує Excel 2007
rcphq

Я думаю, що це питання можна також переосмислити як "посилання на динамічний компонент структурованої посилання в excel".
jiggunjer

Відповіді:


13

У вас це мало не було INDIRECT(), але ваша логіка трохи відключилася. Спробуйте це замість цього:

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

Ключовим фактором, що потрібно пам'ятати, є те, що INDIRECT()для першого аргументу береться лише текст (тобто рядок). Таким чином, ви повинні передати всі частини таблиці посилання на функцію як текст.


насправді це працювало, мені потрібно було посилатися на всю таблицю. це спрацювало! Дякую!
rcphq

16

Використання методу INDIRECT працює, але найкраще уникати, коли це можливо, оскільки це мінлива функція і може мати величезний обчислювальний вплив на вашу електронну таблицю.

Енергонезалежна альтернатива, яка виконує те, що ви хочете, - використовувати INDEX / MATCH

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

-Тім


Відмінно, я фактично натрапив на цей метод пізніше і з цього часу використовую його. Збіг обставин я помітив величезне уповільнення на старих електронних таблицях, де я використовував непрямі на десятках аркушів. Дякую!
rcphq

2

на першому кроці налаштуйте текстову клітинку, яка містить ім'я стовпця, на який ви посилаєтесь (скажімо, $ A $ 1) $ A $ 1 містить, наприклад, "Column2".

то для пошуку підрахунку стовпця, на який посилається $ A $ 1, буде = Count (непрямий ("Таблиця1 [" & $ a $ 1 & "]"))

цей непрямий метод може бути використаний для побудови всіх частин посилання на таблицю і, наприклад, також може бути організований для пошуку з різних таблиць

порада. якщо клітинка $ a $ 1 перевірена як випадаючий список, який вказує на заголовки єдиної таблиці, то будь-які зміни в кількості стовпців таблиці будь-яких змін у заголовках заголовка будуть зібрані.


1
(1) Перший крок: введіть ім'я потрібного стовпчика в клітинку типу A1.  ОП вже зробила це і про це говорить у запитанні.   (2) Другий крок - це точна копія відповіді Екселллла . (4) Налаштування A1як випадання дійсних імен стовпців виглядає як гарна ідея, але я не розумію решти останнього абзацу відповіді.
Скотт

1

Ось дуже гарна стаття щодо структурованих посилань у Excel. Здається, це працює трохи більше інакше в Excel 2010, ніж в Excel 2007.

Використання структурованих посилань з таблицями Excel

В основному ви посилаєтесь на таблицю, а потім на стовпець всередині таблиці.

Загальна таблиця Excel

У цьому прикладі ви можете посилатись на таблицю 1 стовпця 1 так:

=COUNT(Table1[Column1])

Ви можете назвати стовпці заголовків у таблиці. Якби я перейменував Column1 у Sales, формула стала б:

=COUNT(Table1[Sales])

Так, моя таблиця належним чином названа з різними стовпцями, те, що я хочу, це метод ТОЛЬКО перевершити, який стовпець я хочу залежно від значення комірки, щось подібне =COUNT(Table1[A1])Де А1 є клітиною, я хочу містити ім'я стовпця
rcphq
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.