Как искать / находить значения в другой книге?
В этой статье рассказывается о том, как искать значения и возвращать данные из другой книги, а также как находить / искать значения из другой книги. Здесь я подробно расскажу о трех решениях.
- Данные Vlookup и возвращаемые значения из другой книги в Excel
- Данные Vlookup и возвращаемые значения из другой закрытой книги с VBA
Данные Vlookup и возвращаемые значения из другой книги в Excel
Например, вы создаете таблицу «Покупка фруктов» в Excel, и теперь вам нужно просмотреть фрукты из другой книги и вернуть соответствующие цены, как показано на скриншотах ниже. Здесь я расскажу вам, как решить эту проблему с помощью функции VLOOKKUP в Excel.
1. Откройте обе книги, из которых вы будете просматривать значения и возвращать значения.
2. Выберите пустую ячейку, в которую вы вернете цену, введите формулу = ВПР (B2; [Price.xlsx] Sheet1! $ A $ 1: $ B $ 24,2; FALSE) в него, а затем перетащите его маркер заполнения, чтобы применить эту формулу к диапазону по мере необходимости.
Заметки:
(1) В приведенной выше формуле B2 - это плод, который вы будете искать в другой книге, Price.xlsx указывает имя файла книги, из которой вы будете искать, Sheet1 означает имя листа, из которого вы будете искать, и A $ 1 : $ B $ 24 - это диапазон, из которого вы будете искать. Вы можете изменить их по своему усмотрению.
(2) После закрытия книги, из которой вы искали, формула автоматически обновится до = ВПР (B2; 'W: \ test \ [Price.xlsx] Sheet1'! $ A $ 1: $ B $ 24,2, FALSE), W: \ test \ - это путь сохранения книги, из которой вы искали.
Пока все цены вернулись правильно, как показано на скриншоте слева. И эти цены будут обновляться автоматически, если исходная книга, которую вы искали, изменилась.
Формула слишком сложна для запоминания? Сохраните формулу как запись Auto Text для повторного использования одним щелчком мыши в будущем! Подробнее ... Бесплатная пробная версия |
Данные Vlookup и возвращаемые значения из другой закрытой книги с VBA
Может возникнуть путаница при настройке пути сохранения, имени файла и рабочего листа в функции VLOOKUP. Этот метод позволит легко решить эту проблему с помощью VBA.
1. нажмите другой + F11 клавиши, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модули, а затем вставьте ниже код VBA в открывающееся окно модуля.
VBA: данные Vlookup и возвращаемые значения из другой закрытой книги
Private Function GetColumn(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
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xUserRange = Application.InputBox("Lookup values :", "Kutools for Excel", xAddress, Type:=8)
If Err <> 0 Then Exit Sub
Set xUserRange = Application.Intersect(xUserRange, Application.ActiveSheet.UsedRange)
xFileName = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", 1, "Select a Workbook")
If xFileName = False Then Exit Sub
Application.ScreenUpdating = False
Set xSourceWb = Workbooks.Open(xFileName)
Set xSourceSh = xSourceWb.Worksheets.Item(1)
xString = "='" & xSourceWb.Path & Application.PathSeparator & _
"[" & xSourceWb.Name & "]" & xSourceSh.Name & "'!$"
For Each xRg In xUserRange
Set xFCell = xSourceSh.Cells.Find(xRg.Value, , xlValues, xlWhole, , , False)
If Not (xFCell Is Nothing) Then
xRg.Offset(0, 2).Formula = xString & GetColumn(xFCell.Column + 1) & "$" & xFCell.Row
End If
Next
xSourceWb.Close False
Application.ScreenUpdating = True
End Sub
Внимание: Этот VBA будет возвращать значения в столбце, который находится на 2 столбца позади выбранного столбца. Например, я выбираю столбец B при применении этого VBA, значения возвращаются в столбце D. Если вам нужно изменить столбец назначения, узнайте код xRg.Offset (0, 2) .Formula = xString & GetColumn (xFCell.Column + 1) & "$" & xFCell.Row и заменить 2 на другой номер по мере необходимости.
3. нажмите F5 ключ или щелкните Run кнопку для запуска этого VBA.
4. В открывшемся диалоговом окне укажите диапазон данных, который вы будете искать, и щелкните значок OK .
5. Теперь выберите книгу, в которой вы будете искать значения в открывшемся диалоговом окне «Выбор книги», и нажмите кнопку Откройте .
Теперь все выбранные значения ищутся в указанной закрытой книге, и соответствующие значения возвращаются в указанном столбце. Смотрите скриншот:
Лучшие инструменты для офисной работы
Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!