У меня есть электронная таблица, в которой много именованных диапазонов, каждый из которых является таблицей. Я хочу иметь возможность запустить поиск, который извлечет значение из любой из таблиц. Я хочу иметь возможность сохранить имя именованного диапазона в ячейке.
Я пытался:
=HLOOKUP(B14,B6,(B22+1),FALSE)
B14 — это значение, которое я хотел найти. B6 хранит имя именованного диапазона, а при использовании проверки данных может содержаться только имя именованного диапазона. B22 хранит количество строк в таблице, и, конечно, +1 просто останавливает поиск, начинающийся со строки заголовка.
Проблема в том, что синтаксис поиска Excel считает, что я ввожу диапазон ячеек для поиска; B6 — это диапазон.
Я нашел способ добавить список всех именованных диапазонов, определенных в таблице, вместе с диапазоном ячеек, используя Формулы/Определенные имена/Использовать в формуле. Я подумал, что могу использовать это как вложенный поиск по типу
=vlookup(B6,Sheet1!$A$1,$B$77,2,FALSE)
но хотя это само по себе возвращает правильное значение, оно делает это так, как будто это текст. Я замечаю, что в начале строки есть =, и интересно, если я могу отсоединить это ( MID
функция?), тогда это может быть распознано как диапазон ячеек для поиска. Проблема с функцией, MID
однако, в том, что вам нужно знать количество символов в строке, и некоторые будут иметь больше символов, чем другие - одинарные против двойных букв для столбцов и единицы против десятков против сотен для строк
Итак, я застрял и нуждаюсь в помощи: любые идеи будут высоко оценены.
решение1
Трудно сказать, что именно вы ищете, без скриншота, но это может вам подойти. Это динамическая VLOOKUP
формула, которая принимает имена таблиц и столбцов в качестве входных данных.
Вот формула:
=VLOOKUP(F14,INDIRECT(F15),MATCH(F16,INDIRECT(F15&"[#Headers]"),0),0)
Он используется INDIRECT
для ссылки на именованные диапазоны и MATCH
для определения того, какой столбец необходимо ввести в файл VLOOKUP
.