Страницы: 1
RSS
Получение данных из списка файлов
 
Коллеги форумчане, добрый день!

Примерно год назад обращался за помощью на форум, так как очень нуждался в более совершенной, или так сказать функциональной формуле ИНДЕКС+ПОИСКПОЗ.
В результате была получена очень гибкая и функциональная формула, подробнее по ссылке, огромное спасибо за помощь vikttur формула работает и облегчает жизнь) Но теперь возник следующий вопрос.
Данная формула, а именно ИНДЕКС+МАКС(ЕСЛИ=дипазон+СТОЛБЕЦ работает с закрытыми файлами, ранее это был один файл, теперь их много(((
Можно ли что-то добавить в формулу, чтобы она переключалась между файлами исходя из имени которое указано в ячейке.
Фактически , место расположения,  диапазоны и названия листов с которых достаются данные абсолютно одинаковые, а вот названия файлов разные.
Изменено: Hopsright - 20.05.2015 12:04:26
 
Макросом можно. Файл-пример нужен...
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Спасибо за ответ. То есть нельзя никак заставить формулу работать по таким условиям
 
На днях обсуждали уже где-то. Был предложен вариант - заранее прописать все варианты формул, а нужный вариант выбирать уже затем исходя из введённого имени файла.
 
Так формула будет одинаковая, просто имя файла будет меняться, только записать формулы наперед не очень удобно.
Можно реализовать просто динамический поиск по имени файла
 
Hopsright, не в первый раз уже. Кнопка цитирования не для ответа
 
Я предложил вариант без макросов, только формулами.
А динамический поиск по имени файла - это только макрос, который Вы не просили: "Можно ли что-то добавить в формулу, чтобы она переключалась между файлами исходя из имени которое указано в ячейке. "
 
Можно ли с помощью формулы СЦЕПИТЬ, осуществить переключение между файлами? То есть протягиваем формулу, Индекс, внутри которой диапазон индекса такой же, только меняется имя файла.
Делаем: внутри в пути к файлу, СЦЕПИТЬ, и сцепляем новое название, которое берем из указанной ячейки...как то так.
Вот только проблема в том, что такая формула неактивная.
Может есть макрос какой-то который активирует такие формулы?
Я уже искал когда-то такой

Заранее благодарен
 
Сцепить не получится. А макросом можно сгенерить нужную формулу и прописать её в ячейку. Или сразу в UDF и извлечь нужные данные - делали пару раз тут на днях такое, можно поискать по "ExecuteExcel4Macro"
Или вот цитата:
Код
В VBA нет метода получения значения из закрытого файла рабочей книги. Но можно воспользоваться возможностью управления ссылками на файлы. Функция которая получает значения из закрытой книги, выполняется в результате вызова макроса ХLM.

Private Function GetValue(path, file, sheet, ref)
    Dim arg As String
    If Right(path, 1) <> "\" Then path = path & "\"
    If Dir(path & file) = "" Then
        GetValue = "Файл не найден"
        Exit Function
    End If
    arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
    GetValue = ExecuteExcel4Macro(arg)
End Function


path - путь к закрытому файлу "c:\tmp"
file - название рабочей книги "vxl.xls"
sheet - название рабочего листа "Лист1"
ref - ссылка на ячейку "C4"

P.S. Хотя тут сейчас потестил - ExecuteExcel4Macro работает в макросе, но не получилось заставить работать в UDF...
Изменено: Hugo - 29.05.2015 11:24:54
Страницы: 1
Наверх