Jak wyszukiwać / znajdować wartości w innym skoroszycie?
W tym artykule omówiono sposób wyszukiwania wartości i zwracania danych z innego skoroszytu oraz znajdowania / wyszukiwania wartości z innego skoroszytu. Tutaj szczegółowo przedstawię trzy rozwiązania.
- Przeglądaj dane i zwracaj wartości z innego skoroszytu w programie Excel
- Przeglądaj dane i zwracaj wartości z innego zamkniętego skoroszytu z VBA
Przeglądaj dane i zwracaj wartości z innego skoroszytu w programie Excel
Na przykład tworzysz tabelę zakupów owoców w programie Excel, a teraz musisz przejrzeć owoce z innego skoroszytu i zwrócić odpowiednie ceny, jak pokazano poniżej. Tutaj poprowadzę Cię przez rozwiązanie tego problemu za pomocą funkcji WYSZUKAJ.PIONOWO w programie Excel.
1. Otwórz oba skoroszyty, z których będziesz przeglądać wartości i zwracaj wartości.
2. Wybierz pustą komórkę, którą zwrócisz cenę, wpisz formułę = WYSZUKAJ.PIONOWO (B2; [Price.xlsx] Arkusz1! $ A 1: $ B 24,2; FAŁSZ) do niego, a następnie przeciągnij jego uchwyt wypełnienia, aby zastosować tę formułę do zakresu zgodnie z potrzebami.
Uwagi:
(1) W powyższym wzorze B2 jest owocem, na który spojrzysz z innego skoroszytu, Price.xlsx wskazuje nazwę pliku skoroszytu, z którego będziesz patrzeć, Arkusz1 oznacza nazwę arkusza, z którego będziesz patrzeć, a 1 $ : B $ 24 $ to zakres, z którego będziesz patrzeć w górę. Możesz je zmieniać według potrzeb.
(2) Po zamknięciu skoroszytu, z którego wyszedłeś, formuła zostanie automatycznie zaktualizowana do = WYSZUKAJ.PIONOWO (B2; 'W: \ test \ [Price.xlsx] Sheet1'! $ A $ 1: $ B $ 24,2; FALSE), W: \ test \ jest ścieżką zapisu skoroszytu, z którego wyszukałeś.
Jak dotąd wszystkie ceny wróciły poprawnie, jak pokazano na lewym zrzucie ekranu. Ceny te zostaną zaktualizowane automatycznie, jeśli oryginalny skoroszyt wyszukałeś po zmianach.
Formuła jest zbyt skomplikowana, by ją zapamiętać? Zapisz formułę jako wpis Auto Text do ponownego użycia za pomocą jednego kliknięcia w przyszłości! Czytaj więcej ... Przetestuj za darmo |
Przeglądaj dane i zwracaj wartości z innego zamkniętego skoroszytu z VBA
Konfigurowanie ścieżki zapisu, nazwy pliku i arkusza roboczego w funkcji WYSZUKAJ.PIONOWO może być mylące. Ta metoda wprowadzi VBA, aby łatwo go rozwiązać.
1. wciśnij inny + F11 klawisze, aby otworzyć okno Microsoft Visual Basic for Applications.
2. Kliknij wstawka > Moduł, a następnie wklej poniższy kod VBA do okna modułu otwierającego.
VBA: Vlookup dane i zwracane wartości z innego zamkniętego skoroszytu
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
Note: Ten VBA zwróci wartości w kolumnie znajdującej się 2 kolumny za wybraną kolumną. Na przykład wybieram kolumnę B podczas stosowania tego VBA, wartości zwrócą się w kolumnie D. Jeśli chcesz zmienić kolumnę docelową, znajdź kod xRg.Offset (0, 2) .Formula = xString & GetColumn (xFCell.Column + 1) & "$" & xFCell.Row i wymień 2 na inny numer, jak potrzebujesz.
3. wciśnij F5 lub kliknij run przycisk, aby uruchomić ten VBA.
4. W otwartym oknie dialogowym określ zakres danych, które chcesz przeszukać, i kliknij OK przycisk.
5. Teraz wybierz skoroszyt, w którym będziesz szukać wartości w otwierającym się oknie dialogowym Wybierz skoroszyt, i kliknij Otwarte przycisk.
Teraz wszystkie wybrane wartości są wyszukiwane w określonym zamkniętym skoroszycie, a odpowiadające im wartości są zwracane w określonej kolumnie. Zobacz zrzut ekranu:
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!