У меня есть 3 таблицы, Tab1 , Tab2 и Tab3 содержащие данные и пустую таблицу Tab
Пользователь может выбрать из выпадающего списка, option1 , option2 и option3 .

При выборе от пользователя пустая таблица Tab будет заполнена соответствующей таблицей.

Например, когда пользователь выбирает option2 , Tab заполняется данными из Tab2 ; все таблицы имеют одинаковый размер.

Мне удалось использовать INDIRECT чтобы добавить значение для одной ячейки, но не для полной таблицы. Есть ли у вас какие-либо идеи, любые простые формулы для Excel 2007. Я не использую VBA.

1 ответ1

0

Я бы сделал ваши выпадающие значения именем ваших таблиц, если это возможно. И назначьте именованный диапазон ячейке, которая содержит получающееся в результате значение раскрывающегося списка, например OptionPicked . В вашем пустом диапазоне, который имеет те же размеры, что и три таблицы, поместите эту формулу в каждую ячейку.

INDEX(INDIRECT(OptionPicked &"[#All]"),ROW()-ROW($A$1),COLUMN()-COLUMN($A$1))

Это будет работать, если пустая таблица Tab не является реальной таблицей Excel, так как формулы не допускаются в заголовках таблиц Excel.

Если вы не хотите использовать имена таблиц в качестве выпадающего списка, вы можете создать два списка, которые содержат ваши TableNames и DropDownChoices и ваш раскрывающийся список ссылается на list =DropDownChoices и ячейка, содержащая этот раскрывающийся список, все равно будет названный OptionPicked . Затем в каждой ячейке во Tab "Таблица" введите эту формулу

=INDEX(INDIRECT(INDEX(TableNames,MATCH(OptionPicked,DropDownChoices,0)) &"[#All]"),ROW()-ROW($A$1),COLUMN()-COLUMN($A$1))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .