Как искать или находить значения в другом файле?
В повседневной работе с Excel вам часто может понадобиться получить информацию, находящуюся в другом файле. Независимо от того, составляете ли вы сводку, сверяете записи между отделами или просто используете справочные данные, хранящиеся отдельно, умение находить значения и получать информацию из другого файла является важнейшим навыком. Эта возможность значительно повышает согласованность данных и снижает количество ошибок, особенно при работе с распределёнными Исходный диапазон, большими наборами данных или файлами, совместно используемыми с коллегами.
В этой статье рассматриваются способы поиска значений в другом файле и возврата соответствующих данных прямо в ваш активный файл Excel. Представлены три практичных метода, охватывающих типичные сценарии: классическая функция ВПР со ссылкой на открытые или закрытые файлы, решение на основе VBA для динамических задач и альтернативные формулы. Подробные объяснения и примеры помогут вам выбрать наиболее подходящий метод для вашего рабочего процесса.
- Поиск данных и Возвращаемое значение из другой книги в 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может привести к неточным или приближённым результатам.
(3) Если вы видите ошибку #Н/Д, это обычно означает, что искомое значение отсутствует в Исходный диапазон. Проверьте написание, Диапазон и убедитесь, что все необходимые файлы доступны.
С помощью этого метода вы можете подключать актуальные цены или информацию из внешних источников. Возвращаемое значение будет автоматически обновляться при каждом изменении исходной книги — при условии, что она открыта или доступна по указанному пути.
Преимущества: Простая настройка даже для большинства пользователей; данные обновляются автоматически.
Ограничения: Формулы могут стать громоздкими при изменении путей или имени книги, а поиск данных в закрытых книгах может замедлить работу с большими файлами или вызывать запрос на обновление ссылок.
Если вам нужны более сложные операции поиска или вы часто работаете с данными из закрытой внешней книги, рассмотрите возможность использования метода VBA или альтернативных формул, приведённых ниже.
![]() | Слишком сложная формула, чтобы её запомнить? Сохраните формулу как элемент автотекста и используйте её в будущем всего одним щелчком! Подробнее… Бесплатная пробная версия |

Раскройте магию Excel с помощью KUTOOLS AI
- Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
- Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
- Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
- Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
- Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Поиск данных с помощью ВПР и Возвращаемое значение из другого закрытого файла с помощью 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 в конце обеспечивает точное совпадение.
Преимущества: Поддерживает поиск как вправо, так и влево и допускает более гибкие структуры данных.
Советы: Избегайте перемещения или переименования исходных файлов без обновления формулы.
Использование функции 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
Раскройте весь потенциал 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.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек
