Come cercare/trovare valori in un'altra cartella di lavoro?
Questo articolo parla di come cercare valori e restituire dati da un'altra cartella di lavoro, e come trovare/ricercare valori da un'altra cartella di lavoro. Qui introdurrò tre soluzioni in dettaglio.
- Cercare dati e restituire valori da un'altra cartella di lavoro in Excel
- Cercare dati e restituire valori da un'altra cartella di lavoro chiusa con VBA
Cercare dati e restituire valori da un'altra cartella di lavoro in Excel
Ad esempio, stai creando una tabella di acquisto di frutta in Excel, e ora devi cercare le frutte da un'altra cartella di lavoro e restituire i prezzi corrispondenti come mostrato negli screenshot sottostanti. Qui ti guiderò per risolvere il problema utilizzando la funzione CERCA.VERT in Excel.
1. Apri entrambe le cartelle di lavoro da cui cercherai i valori e in cui restituirai i valori.
2. Seleziona una cella vuota in cui restituire il prezzo, digita la formula =CERCA.VERT(B2,[Price.xlsx]Foglio1!$A$1:$B$24;2;FALSO) in essa, e poi trascina la maniglia di riempimento per applicare questa formula all'intervallo secondo necessità.

Note:
(1) Nella formula sopra, B2 è la frutta che cercherai da un'altra cartella di lavoro, Price.xlsx indica il nome del file della cartella di lavoro da cui cercherai, Foglio1 significa il nome del foglio da cui cercherai, e A$1:$B$24 è l'intervallo da cui cercherai. Puoi cambiarli secondo necessità.
(2) Dopo aver chiuso la cartella di lavoro da cui hai cercato, la formula si aggiornerà automaticamente a =CERCA.VERT(B2,'W:\test\[Price.xlsx]Foglio1'!$A$1:$B$24;2;FALSO), W:\test\ è il percorso di salvataggio della cartella di lavoro da cui hai cercato.
Finora, tutti i prezzi sono stati restituiti correttamente come mostrato nello screenshot a sinistra. E questi prezzi si aggiorneranno automaticamente se la cartella di lavoro originale da cui hai cercato cambia.
![]() | La formula è troppo complicata da ricordare? Salva la formula come voce di AutoTesto per riutilizzarla con un solo clic in futuro! Leggi di più… Prova gratuita |

Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
Cercare dati e restituire valori da un'altra cartella di lavoro chiusa con VBA
Potrebbe essere un po' confuso configurare il percorso di salvataggio, il nome del file e il foglio di lavoro nella funzione CERCA.VERT. Questo metodo introdurrà un VBA per risolverlo facilmente.
1. Premi i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic per Applicazioni.
2. Clicca su Inserisci > Modulo, e poi incolla il seguente codice VBA nella finestra del modulo aperta.
VBA: Cercare dati e restituire valori da un'altra cartella di lavoro chiusa
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
Nota: Questo VBA restituirà i valori in una colonna che è 2 colonne dopo la colonna selezionata. Ad esempio, seleziono la colonna B quando applico questo VBA, i valori verranno restituiti nella colonna D. Se hai bisogno di cambiare la colonna di destinazione, trova il codice xRg.Offset(0, 2).Formula = xString & GetColumn(xFCell.Column + 1) & "$" & xFCell.Row , e sostituisci 2 con un altro numero secondo necessità. 3. Premi il tasto F5 o clicca sul pulsante Esegui per eseguire questo VBA.
4. Nella finestra di dialogo che si apre, specifica l'intervallo di dati che cercherai, e clicca sul pulsante OK pulsante.
5. Ora seleziona la cartella di lavoro in cui cercherai i valori nella finestra di dialogo Seleziona una Cartella di Lavoro che si apre, e clicca sul pulsante Apri pulsante.
Ora tutti i valori selezionati sono stati cercati nella cartella di lavoro chiusa specificata, e i valori corrispondenti sono stati restituiti nella colonna specificata. Vedi screenshot:
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!