Создайте запрос поиска в Excel, используя именованные диапазоны, хранящиеся в ячейке

3570
Gruffling

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

Я старался:

=HLOOKUP(B14,B6,(B22+1),FALSE) 

B14 была ценность, которую я хотел посмотреть. B6 хранит имя именованного диапазона, а с помощью проверки данных может содержать только имя именованного диапазона. B22 хранит количество строк в таблице и, конечно, +1 просто останавливает поиск, начиная с строки заголовка.

Проблема в том, что синтаксис поиска в Excel считает, что я набираю диапазон ячеек для поиска; что B6 это диапазон.

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

=vlookup(B6,Sheet1!$A$1,$B$77,2,FALSE) 

но хотя это само по себе возвращает правильное значение, оно делает это так, как будто это текст. Я замечаю, что в начале строки есть =, и задаюсь вопросом, могу ли я отсоединить эту ( MIDфункцию?), Тогда она может быть распознана как диапазон ячеек для поиска. Проблема с MIDфункцией заключается в том, что вам нужно знать количество символов в строке, и у некоторых будет больше символов, чем у других - одиночные или двойные буквы для столбцов и единиц, десятки против сотен для строк

Так что я застрял и нуждаюсь в помощи: любые идеи будут с благодарностью.

2
Трудно следить за всем, что вы пытаетесь сделать, не видя этого. Эта статья может вам помочь - [Используйте функцию VLOOKUP для нескольких таблиц] (http://www.brainbell.com/tutorials/ms-office/excel/Use_The_VLOOKUP_Function_Across_Multiple_Tables.htm). CharlieRB 8 лет назад 0

1 ответ на вопрос

3
Andi Mohr

Трудно сказать точно, что вы ищете без скриншота, но это может сработать для вас. Это динамическая VLOOKUPформула, которая принимает имена таблиц и столбцов в качестве входных данных.

Вот формула:

=VLOOKUP(F14,INDIRECT(F15),MATCH(F16,INDIRECT(F15&"[#Headers]"),0),0) 

Он используется INDIRECTдля ссылки на ваши именованные диапазоны и MATCHдля определения, какой столбец вам нужно ввести в свой VLOOKUP.

enter image description here

Большое спасибо Энди. Обычно я провожу часы с вложенными операторами if, чтобы получить подобные результаты, но недавно я начал использовать именованные диапазоны после прохождения курса, но это делает их намного более ценными. Этот был в моем случае, мне не нужна функция Match (которая также является новой для меня). Gruffling 8 лет назад 0
Большое спасибо Энди. Обычно я провожу часы с вложенными операторами if, чтобы получить подобные результаты, но недавно я начал использовать именованные диапазоны после прохождения курса, но это делает их намного более ценными. Этот был намного хуже, так как я работал с 76 поисками, которые, даже если бы он не нарушал вложенный предел Excels, были бы кошмаром, когда дело дошло до охоты на недостающую скобку! В моем случае мне не нужна функция Match (которая также является новой для меня), так как у меня было другое выражение, которое определяло количество строк в выражении. Еще раз, я не могу отблагодарить вас за вашу помощь. : D Gruffling 8 лет назад 1

Похожие вопросы