KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как искать или находить значения в другом файле?

АвторКеллиДата изменения

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

В этой статье рассматриваются способы поиска значений в другом файле и возврата соответствующих данных прямо в ваш активный файл Excel. Представлены три практичных метода, охватывающих типичные сценарии: классическая функция ВПР со ссылкой на открытые или закрытые файлы, решение на основе VBA для динамических задач и альтернативные формулы. Подробные объяснения и примеры помогут вам выбрать наиболее подходящий метод для вашего рабочего процесса.


Поиск данных с помощью ВПР и Возвращаемое значение из другого файла в Excel

Предположим, вы создаёте таблицу закупок фруктов в Excel и вам необходимо получить актуальные цены, хранящиеся в другой книге. Вместо копирования и вставки вы можете автоматически найти названия фруктов в исходной книге и получить соответствующие цены, обеспечивая актуальность и автоматическое обновление данных. Ниже показано, как выполнить эту задачу с помощью функции ВПР (VLOOKUP).

создать пример данныхвыполнить ВПР для фруктов из другой книги

Сначала откройте и книгу, в которую вы хотите собрать или свести данные, и исходную книгу с нужной информацией (например, ценами).

Выберите ячейку, в которой вы хотите отобразить цену фрукта, и введите в неё следующую формулу, при необходимости заменив указанные детали:

=VLOOKUP(B2,[Price.xlsx]Sheet1!$A$1:$B$24,2,FALSE)

После ввода формулы нажмите Enter. Чтобы применить эту формулу к дополнительным строкам, просто перетащите маркер заполнения (маленький квадрат в правом нижнем углу ячейки) вниз до нужного количества ячеек.

введите формулу для выполнения ВПР из другой книги

перетащите и заполните формулу в другие ячейки

Пояснение и советы:
(1) В приведённой выше формуле:

  • B2 — это ячейка, в которой указано название фрукта для поиска.
  • Price.xlsx — это исходная книга, в которой хранятся данные о ценах. Убедитесь, что имя файла и его расширение указаны правильно.
  • Sheet1 — это лист в исходной книге, содержащий таблицу для поиска.
  • A$1:$B$24 — это диапазон, содержащий как ключи (например, названия фруктов), так и соответствующие им значения. При необходимости скорректируйте его в соответствии с вашими данными.
  • 2 означает, что значения будут возвращаться из второго столбца в ограниченном диапазоне.
  • FALSE гарантирует точное совпадение, тогда как использование TRUEможет привести к неточным или приближённым результатам.
(2) Если вы закроете исходный файл, Excel изменит ссылку в формуле, добавив Путь к файлу (например,)=VLOOKUP(B2,„W:\test\[Price.xlsx]Sheet1"!$A$1:$B$24,2,FALSE)). Убедитесь, что ссылочный файл остаётся в этом расположении, иначе формулы могут вернуть ошибки или #ССЫЛ!. Если вы переместите или переименуете исходный файл, возможно, потребуется обновить ссылки в формулах.
(3) Если вы видите ошибку #Н/Д, это обычно означает, что искомое значение отсутствует в Исходный диапазон. Проверьте написание, Диапазон и убедитесь, что все необходимые файлы доступны.

 

С помощью этого метода вы можете подключать актуальные цены или информацию из внешних источников. Возвращаемое значение будет автоматически обновляться при каждом изменении исходной книги — при условии, что она открыта или доступна по указанному пути.
Преимущества: Простая настройка даже для большинства пользователей; данные обновляются автоматически.
Ограничения: Формулы могут стать громоздкими при изменении путей или имени книги, а поиск данных в закрытых книгах может замедлить работу с большими файлами или вызывать запрос на обновление ссылок.

Если вам нужны более сложные операции поиска или вы часто работаете с данными из закрытой внешней книги, рассмотрите возможность использования метода VBA или альтернативных формул, приведённых ниже.

лента «Заметки»Слишком сложная формула, чтобы её запомнить? Сохраните формулу как элемент автотекста и используйте её в будущем всего одним щелчком!
Подробнее…     Бесплатная пробная версия
скриншот kutools for excel ai

Раскройте магию Excel с помощью KUTOOLS AI

  • Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
  • Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
  • Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
  • Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
  • Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Расширьте возможности Excel с помощью инструментов на базе ИИ.Скачать сейчаси ощутите эффективность, как никогда раньше!

Поиск данных с помощью ВПР и Возвращаемое значение из другого закрытого файла с помощью VBA

Настройка ссылок для поиска с помощью функции ВПР (VLOOKUP) может быть затруднительной, особенно если вы часто изменяете путь, имя или лист исходного файла. В таких случаях автоматизация процесса поиска с помощью VBA становится более удобным решением: она позволяет выполнять поиск значений даже при закрытой исходной книге, а также автоматизирует выбор диапазона и возврат данных.

Выполните следующие шаги, чтобы использовать VBA для поиска данных в других книгах:

1. Нажмите одновременно клавиши Alt+F11, чтобы открыть окно редактора Microsoft Visual Basic for Applications.

2.В редакторе VBA выберите команду Insert>Module, затем скопируйте и вставьте приведённый ниже код в окно модуля:

VBA: Поиск данных и Возвращаемое значение из другой закрытой книги

Option Explicit

' Convert column number to column letter
Private Function GetColumn(ByVal Num As Integer) As String
    If Num <= 26 Then
        GetColumn = Chr(Num + 64)
    Else
        GetColumn = Chr((Num - 1) \ 26 + 64) & _
                    Chr((Num - 1) Mod 26 + 65)
    End If
End Function

Sub FindValue()

    Dim xAddress As String
    Dim xString As String
    Dim xFileName As Variant
    Dim xUserRange As Range
    Dim xRg As Range
    Dim xFCell As Range
    Dim xSourceSh As Worksheet
    Dim xSourceWb As Workbook
    
    On Error Resume Next
    
    ' Get current selection address
    xAddress = Application.ActiveWindow.RangeSelection.Address
    
    ' Ask user to select lookup range
    Set xUserRange = Application.InputBox( _
        Prompt:="Lookup values :", _
        Title:="Kutools for Excel", _
        Default:=xAddress, _
        Type:=8)
    
    If Err.Number <> 0 Then Exit Sub
    On Error GoTo 0
    
    ' Limit selection to used range
    Set xUserRange = Application.Intersect(xUserRange, _
                                           Application.ActiveSheet.UsedRange)
    
    ' Ask user to select source workbook
    xFileName = Application.GetOpenFilename( _
                "Excel Files (*.xlsx), *.xlsx", _
                1, _
                "Select a Workbook")
                
    If xFileName = False Then Exit Sub
    
    Application.ScreenUpdating = False
    
    ' Open source workbook
    Set xSourceWb = Workbooks.Open(xFileName)
    Set xSourceSh = xSourceWb.Worksheets.Item(1)
    
    ' Build external reference string
    xString = "='" & xSourceWb.Path & Application.PathSeparator & _
              "[" & xSourceWb.Name & "]" & _
              xSourceSh.Name & "'!$"
    
    ' Loop through user range
    For Each xRg In xUserRange
    
        ' Find matching value in source sheet
        Set xFCell = xSourceSh.Cells.Find( _
                        What:=xRg.Value, _
                        LookIn:=xlValues, _
                        LookAt:=xlWhole, _
                        MatchCase:=False)
        
        ' If found, write formula 2 columns to the right
        If Not xFCell Is Nothing Then
            xRg.Offset(0, 2).Formula = _
                xString & _
                GetColumn(xFCell.Column + 1) & _
                "$" & xFCell.Row
        End If
        
    Next xRg
    
    ' Close source workbook without saving
    xSourceWb.Close False
    
    Application.ScreenUpdating = True

End Sub

Важные детали:

  • Код возвращает найденное значение в столбец, смещённый на 2 столбца вправо от диапазона поиска. Например, если вы выбрали столбец B, результаты появятся в столбце D.
  • Если вы хотите, чтобы результат отображался в другом столбце, измените число 2 в строке xRg.Offset(0,2).Formulaна другое значение (например,)1 для следующего столбца, 3 для третьего столбца справа).
  • Выберите правильную книгу и лист при появлении запроса; код всегда будет использовать первый лист в выбранном файле. При необходимости скорректируйте код, если ваш исходный лист не является первым.
  • Всегда сохраняйте файл перед запуском незнакомых макросов. После выполнения макрос нельзя отменить.

3. Запустите макрос, нажав клавишу F5 или кнопку Run. Появится диалоговое окно «Kutools для Excel», в котором вам будет предложено выбрать диапазон ячеек со значениями для поиска.

укажите диапазон данных, в котором будет выполняться поиск

4. После выбора диапазона нажмите кнопку OK. Вскоре появится ещё одно диалоговое окно с предложением выбрать исходную книгу (даже если она закрыта). Найдите нужный файл, выберите его и нажмите кнопку Open, чтобы подтвердить выбор.

выберите книгу, в которой будут искаться значения

После завершения работы макроса соответствующие значения из исходной книги будут возвращены в целевой столбец вашей Текущий лист. Если некоторые значения отсутствуют, убедитесь, что Диапазон значений поиска в Текущий лист точно совпадают со значениями в Исходные данные (регистр символов и начальные/Пробелы в конце пробелы имеют значение для точного совпадения).

соответствующие значения возвращаются из закрытой книги

Преимущества: Поддержка работы с закрытыми книгами, отсутствие жёстко заданного пути к файлу в формулах и гибкость при выборе исходных файлов «на лету».
Рекомендации: Макросы должны быть включены; VBA может не работать на защищённых листах или с файлами, не относящимися к Excel. Сохраняйте книгу в формате с поддержкой макросов (*.xlsm), если планируете часто использовать этот метод.

Если возникают ошибки, убедитесь, что в именах листов и файлов нет опечаток, проверьте корректность диапазона «Выберите диапазон» и доступность «Путь к файлу». Для отладки рекомендуется выполнять код пошагово в редакторе VBA.


Альтернативные формулы для поиска в других книгах

Помимо классического подхода с использованием ВПР (VLOOKUP) и VBA, в Excel существуют альтернативные способы выполнения поиска данных в других книгах. Они могут быть предпочтительнее в тех случаях, когда структура ваших данных отличается, вы предпочитаете формулы макросам или вам требуется большая гибкость (например, поиск влево или использование нескольких критериев).

Использование функций ИНДЕКС и ПОИСКПОЗ для поиска в других книгах

Сочетание функций ИНДЕКС и ПОИСКПОЗ позволяет выполнять поиск значений в любом направлении — влево, вправо, вверх или вниз — in another workbook. This is especially useful when the column you want to retrieve data from is not to the right of the lookup column (a limitation of VLOOKUP).

Сценарий: Допустим, вам нужно получить цену из другой открытой книги, где название фрукта может находиться не в первом столбце.

1.В книге назначения выберите ячейку для отображения результата (например, C2) и введите приведённую ниже формулу (при необходимости замените имя книги, лист и диапазон):

=INDEX([Price.xlsx]Sheet1!$B$1:$B$24, MATCH(B2, [Price.xlsx]Sheet1!$A$1:$A$24,0))

2. Нажмите клавишу Enter. Затем скопируйте формулу в другие строки по мере необходимости, перетащив маркер заполнения.

Пояснение параметров:

  • [Price.xlsx]Sheet1!$B$1:$B$24: диапазон, в котором хранятся цены.
  • B2: Название фрукта, который нужно найти.
  • [Price.xlsx]Sheet1!$A$1:$A$24: диапазон, в котором выполняется поиск значения.
  • Параметр 0 в конце обеспечивает точное совпадение.
Если исходный файл закрыт, Excel обновит Путь к файлу в формуле. Как и в случае с ВПР, убедитесь, что путь остаётся корректным.

Преимущества: Поддерживает поиск как вправо, так и влево и допускает более гибкие структуры данных.
Советы: Избегайте перемещения или переименования исходных файлов без обновления формулы.

Использование функции XLOOKUP для поиска в других книгах (Excel 365 и новее)

Если вы используете Excel 365 или Excel 2021, новая функция XLOOKUP предоставляет ещё больше гибкости. Она позволяет легко находить точные совпадения, поддерживает поиск влево и автоматически обрабатывает отсутствующие значения без ошибок.

Чтобы использовать её:
В ячейке, где должен отображаться результат, введите:

=XLOOKUP(B2, [Price.xlsx]Sheet1!$A$1:$A$24, [Price.xlsx]Sheet1!$B$1:$B$24, "Not found")

Нажмите клавишу Enter и, при необходимости, скопируйте формулу. Текст «Not found» можно заменить на любой другой — он будет отображаться, если совпадений не найдено.

Преимущества: Более гибкая, чем ВПР, и проще в использовании; помогает избежать множества распространённых ошибок, характерных для устаревших формул. Однако функция XLOOKUP доступна только в новых версиях Excel.

Для сложных задач, таких как поиск по нескольким критериям, работа с объединёнными листами или необходимость избежать проблем с производительностью в очень больших файлах, рекомендуется организовывать Исходные данные в виде структурированных таблиц или использовать инструмент Power Query в Excel для эффективного Связать данные между несколькими книгами.

Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек