Come cercare rapidamente un valore in più fogli o cartelle di lavoro?
Vi è mai capitato di dover trovare un valore specifico che potrebbe apparire in diversi fogli o anche attraverso diverse cartelle di lavoro in Excel? Questo è uno scenario comune, specialmente quando si lavora a progetti di grandi dimensioni, report mensili o quando si consolidano informazioni mantenute in diversi file. Esaminare manualmente ogni foglio o file non solo è dispendioso in termini di tempo, ma è anche soggetto a errori. In questo tutorial, scoprirete diversi metodi efficaci per cercare dati in modo efficiente, sia che stiate cercando all'interno di una singola cartella di lavoro, di più cartelle di lavoro, o che abbiate bisogno di una soluzione basata su formule o consolidamento dei dati. Questi approcci affrontano esigenze pratiche che potreste incontrare nei flussi di lavoro Excel di routine o nei progetti di analisi dei dati.
Cercare un valore in più fogli di una cartella di lavoro con la funzione Trova e Sostituisci
Cercare un valore in tutte le cartelle di lavoro di una cartella con VBA
Cercare rapidamente un valore attraverso più cartelle di lavoro aperte con Kutools per Excel
Cercare un valore attraverso più fogli usando le formule di Excel
Cercare un valore in più fogli di una cartella di lavoro con la funzione Trova e Sostituisci
La funzione Trova e Sostituisci di Excel è un metodo basilare ma efficace per trovare rapidamente valori specifici attraverso più fogli di lavoro all'interno della stessa cartella di lavoro. Questo metodo è più utile quando sapete quali fogli volete cercare o quando i vostri dati sono relativamente ben strutturati all'interno di un singolo file. Non supporta la ricerca attraverso file diversi o cartelle di lavoro chiuse, ma offre un modo semplice per ricerche rapide.
1. Per iniziare, selezionate le schede dei fogli che volete includere nella vostra ricerca tenendo premuto il tasto Ctrl e cliccando su ogni foglio di lavoro nella barra delle schede dei fogli individualmente. Questo assicura che la ricerca verrà applicata a tutti i fogli selezionati contemporaneamente. Vedere screenshot:
2. Una volta selezionati i fogli desiderati, premete Ctrl + F per aprire la finestra di dialogo Trova e Sostituisci. Digitate il valore che volete trovare nel campo di testo Trova cosa sotto la scheda Trova, quindi fate clic sul pulsante Trova tutto. Excel mostrerà immediatamente un elenco di tutte le celle nei fogli selezionati che contengono il valore di ricerca, insieme alle loro posizioni. Vedere screenshot:
Suggerimento: Lo strumento Trova e Sostituisci cerca solo all'interno dei fogli selezionati che sono aperti e visibili. Se volete estendere la ricerca ad altri fogli, assicuratevi di selezionarli come descritto sopra. Se accidentalmente avete saltato un foglio, ripetete l'operazione dopo averlo incluso nella selezione.
Precauzioni: Questo metodo non cerca attraverso cartelle di lavoro chiuse o nascoste e non evidenzia automaticamente le celle – mostrerà solo i risultati per la navigazione.
Risoluzione dei problemi: Se non vedete i risultati attesi, verificate nuovamente la selezione dei fogli e confermate di non aver applicato filtri o protezioni alle celle che potrebbero nascondere o limitare la ricerca.
Trova e sostituisci valori senza sforzo attraverso più fogli e cartelle di lavoro |
La funzione Trova e Sostituisci avanzata di Kutools per Excel offre un modo efficiente per cercare e sostituire valori attraverso più fogli o anche in tutte le cartelle di lavoro aperte. Con questa funzionalità avanzata, puoi risparmiare tempo ed eliminare errori quando lavori con grandi quantità di dati, rendendo i tuoi compiti in Excel più veloci e precisi. |
![]() |
Kutools per Excel - Potenzia Excel con oltre 300 strumenti essenziali. Goditi funzionalità AI gratuite per sempre! Ottienilo ora |
Cercare un valore in tutte le cartelle di lavoro di una cartella con VBA
Se avete bisogno di cercare un valore specifico attraverso più cartelle di lavoro salvate in una cartella – inclusi file che non avete ancora aperto – gli strumenti incorporati di Excel non possono farlo direttamente. In questo caso, una macro VBA (Visual Basic for Applications) può automatizzare il processo per voi, aprendo sistematicamente ogni cartella di lavoro nella cartella, scansionando tutti i fogli di lavoro e registrando dove vengono trovate corrispondenze. Questo approccio è altamente pratico per audit periodici o per la verifica di valori in file archiviati o batch.
1. Iniziate aprendo una nuova cartella di lavoro (o vuota) in Excel. Selezionate la cella in cui desiderate che appaiano i risultati della ricerca (generalmente la cella A1). Premete Alt + F11 per avviare la finestra dell'editor Microsoft Visual Basic for Applications.
2. All'interno dell'editor VBA, andate su Inserisci > Modulo per creare un nuovo modulo, quindi incollate il seguente codice VBA nella finestra del modulo.
VBA: Cercare un valore in tutte le cartelle di lavoro di una cartella.
Sub SearchFolders()
'UpdatebyKutoolsforExcel20200913
Dim xFso As Object
Dim xFld As Object
Dim xStrSearch As String
Dim xStrPath As String
Dim xStrFile As String
Dim xOut As Worksheet
Dim xWb As Workbook
Dim xWk As Worksheet
Dim xRow As Long
Dim xFound As Range
Dim xStrAddress As String
Dim xFileDialog As FileDialog
Dim xUpdate As Boolean
Dim xCount As Long
Dim xAWB As Workbook
Dim xAWBStrPath As String
Dim xBol As Boolean
Set xAWB = ActiveWorkbook
xAWBStrPath = xAWB.Path & "\" & xAWB.Name
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a forlder"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
xStrSearch = "KTE"
xUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xOut = Worksheets.Add
xRow = 1
With xOut
.Cells(xRow, 1) = "Workbook"
.Cells(xRow, 2) = "Worksheet"
.Cells(xRow, 3) = "Cell"
.Cells(xRow, 4) = "Text in Cell"
Set xFso = CreateObject("Scripting.FileSystemObject")
Set xFld = xFso.GetFolder(xStrPath)
xStrFile = Dir(xStrPath & "\*.xls*")
Do While xStrFile <> ""
xBol = False
If (xStrPath & "\" & xStrFile) = xAWBStrPath Then
xBol = True
Set xWb = xAWB
Else
Set xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False)
End If
For Each xWk In xWb.Worksheets
If xBol And (xWk.Name = .Name) Then
Else
Set xFound = xWk.UsedRange.Find(xStrSearch)
If Not xFound Is Nothing Then
xStrAddress = xFound.Address
End If
Do
If xFound Is Nothing Then
Exit Do
Else
xCount = xCount + 1
xRow = xRow + 1
.Cells(xRow, 1) = xWb.Name
.Cells(xRow, 2) = xWk.Name
.Cells(xRow, 3) = xFound.Address
.Cells(xRow, 4) = xFound.Value
End If
Set xFound = xWk.Cells.FindNext(After:=xFound)
Loop While xStrAddress <> xFound.Address
End If
Next
If Not xBol Then
xWb.Close (False)
End If
xStrFile = Dir
Loop
.Columns("A:D").EntireColumn.AutoFit
End With
MsgBox xCount & " cells have been found", , "Kutools for Excel"
ExitHandler:
Set xOut = Nothing
Set xWk = Nothing
Set xWb = Nothing
Set xFld = Nothing
Set xFso = Nothing
Application.ScreenUpdating = xUpdate
Exit Sub
ErrHandler:
MsgBox Err.Description, vbExclamation
Resume ExitHandler
End Sub
3. Premete il tasto F5 o fate clic sul pulsante Esegui per eseguire questa macro. Apparirà una finestra di dialogo Seleziona una cartella, che vi permetterà di scegliere la cartella che contiene le cartelle di lavoro che desiderate cercare. Vedere screenshot:
4. Fate clic su OK. Dopo che la ricerca sarà completata, una finestra di messaggio vi informerà del numero totale di celle trovate che contengono il valore specificato. Vedere screenshot:
5. Fate clic su OK per chiudere il messaggio. Tutte le posizioni in cui è stato trovato il valore sono elencate in un nuovo foglio di lavoro, compresi il nome della cartella di lavoro, il nome del foglio di lavoro, il riferimento della cella e il contenuto esatto della cella per la vostra revisione.
Suggerimento: Il termine di ricerca corrente è impostato nel VBA come “KTE”. Potete personalizzarlo cambiando la riga xStrSearch = "KTE" nel codice con qualsiasi valore vogliate cercare.
Precauzioni: Prima dell'esecuzione, assicuratevi che tutte le cartelle di lavoro pertinenti siano salvate e chiuse (ad eccezione di quella in cui eseguite la macro, che può essere aperta). Cartelle di grandi dimensioni con molti o complessi file Excel potrebbero richiedere del tempo per essere processate. Non interrompete la macro durante l'esecuzione.
Risoluzione dei problemi: Se riscontrate errori, verificate che tutti i file siano genuini file Excel (non corrotti o protetti da password) e che le impostazioni di sicurezza delle macro consentano l'esecuzione del codice. Se la macro non finisce, provate a eseguirla su un set più piccolo di file prima.
Cercare rapidamente un valore in più cartelle di lavoro aperte con Kutools per Excel
Quando volete eseguire una ricerca attraverso più cartelle di lavoro già aperte nella vostra sessione di Excel, Kutools per Excel offre un pannello dedicato Trova e Sostituisci che rende il processo molto più facile e organizzato. Questo è particolarmente utile per scansionare rapidamente le vostre cartelle di lavoro senza alcuna necessità di scripting o configurazioni complicate, ideale per gli utenti che spesso lavorano con più file contemporaneamente e hanno bisogno di uno strumento user-friendly e diretto per gestire le ricerche.
1. In una delle vostre cartelle di lavoro aperte, andate alla Kutools scheda e selezionate Navigazione. Poi fate clic sul Trova e Sostituisci pulsante per aprire il Trova e Sostituisci riquadro, generalmente situato sul lato sinistro della vostra finestra di Excel. Vedere screenshot:
2. Nel Trova tab, inserite il valore che volete cercare nel Trova cosa campo di testo. Scegliete Tutte le cartelle di lavoro dal Entro menu a discesa per eseguire la ricerca attraverso ogni cartella di lavoro aperta. Poi fate clic su Trova tutto per visualizzare istantaneamente un elenco di tutte le celle corrispondenti, insieme alle loro posizioni. Vedere screenshot:
Suggerimento: L'utilità avanzata Trova e Sostituisci di Kutools per Excel vi permette di cercare e sostituire dati non solo in tutte le cartelle di lavoro aperte, ma anche specificamente in fogli selezionati, nella cartella di lavoro attiva, nel foglio di lavoro corrente o persino solo nella vostra selezione corrente. Questo vi dà un controllo personalizzato in base alle vostre esigenze.
Precauzioni: Assicuratevi che tutte le cartelle di lavoro che volete cercare siano aperte prima di iniziare la ricerca, poiché questo strumento non può cercare file che non sono attualmente aperti in Excel.
Risoluzione dei problemi: Se alcuni file non appaiono nei risultati della ricerca, verificate che siano completamente caricati in Excel e non in una vista protetta o modalità di sola lettura che potrebbe limitare l'accesso alla ricerca.
Demo: Cercare Valore Attraverso Più Cartelle di Lavoro Aperte con Kutools per Excel
Cercare un valore attraverso più fogli usando le formule di Excel
In situazioni in cui avete diversi nomi di fogli noti nella vostra cartella di lavoro e dovete controllare se e dove esiste un valore specifico tra quei fogli, potete usare le formule di Excel per cercare dinamicamente attraverso di essi. Questo approccio è particolarmente adatto quando volete mantenere i risultati della ricerca aggiornati automaticamente e la vostra lista di fogli è relativamente statica o gestita in una tabella separata.
Questo metodo richiede che conosciate o elenchiate già i nomi di tutti i fogli da cercare. È più efficace per controlli automatizzati, dashboard o ogni volta che volete costruire un riferimento di riepilogo senza eseguire una scansione completa ogni volta.
Vantaggi: I risultati si aggiornano automaticamente man mano che cambiano i dati; non c'è bisogno di script o add-in; tutto gestito all'interno della cartella di lavoro.
Svantaggi: Non adatto per situazioni in cui i nomi dei fogli cambiano frequentemente, o se avete un numero molto grande di fogli.
Scenario di esempio: Supponiamo di avere tre fogli denominati Foglio1
, Foglio2
e Foglio3
. Volete sapere in quale/i foglio/i appare un valore specifico, come "Invoice123", nella cella A1, o semplicemente controllare se il valore esiste da qualche parte in quei fogli.
Passo1. Supponiamo di avere un elenco di nomi di fogli in D2:D4 (D2: Foglio1, D3: Foglio2, D4: Foglio3). Inserite il valore da cercare (ad esempio, "Invoice123") in E1. Poi, in F2, inserite questa formula:
=IF(COUNTIF(INDIRECT("'"&D2&"'!A:A"), $E$1) >0, "Found", "Not Found")
Passo2. Trascinate la formula da F2 a F4 per controllare tutti i fogli elencati in D2:D4. Questo restituirà "Trovato" o "Non trovato" per ogni foglio.
Come funziona: La formula utilizza INDIRETTO per creare un riferimento a ogni foglio di lavoro elencato e CONTA.SE per verificare se il valore in E1 appare nella colonna A di ogni foglio. Regolate l'intervallo A:A
per puntare a un'altra colonna o a un intervallo specifico (ad esempio, A1:Z100
) se necessario.
Suggerimento aggiuntivo: Per recuperare il/i nome/i del/i foglio/i contenente il valore, utilizzate la seguente formula matrice (inserita con Ctrl + Shift + Enter nelle versioni precedenti di Excel o come formula normale in Microsoft 365/Excel 2021+):
=TEXTJOIN(", ",TRUE,IF(COUNTIF(INDIRECT("'"&D2:D4&"'!A:A"), $E$1)>0, D2:D4, ""))
Questa restituirà un elenco separato da virgole di tutti i nomi dei fogli in cui viene trovato il valore. Fate attenzione con INDIRETTO – funziona solo con cartelle di lavoro aperte e non consente la ricerca in file chiusi.
Precauzioni: Se i nomi dei fogli vengono modificati o eliminati, la formula restituirà un errore #RIF!; verificate sempre che l'elenco dei nomi dei fogli sia corretto. Per cartelle di lavoro più grandi, le formule basate su INDIRETTO possono rallentare le prestazioni della vostra cartella di lavoro.
Risoluzione dei problemi: Se vedete errori, controllate che tutti i fogli di riferimento esistano e che l'intervallo di ricerca sia corretto. Per elenchi dinamici di fogli, considerate l'uso di intervalli denominati o Convalida dati per mantenere automaticamente aggiornato l'elenco dei fogli.
Articoli correlati:
- Come trovare e sostituire rapidamente attraverso più fogli di lavoro o l'intera cartella di lavoro?
- Come trovare e sostituire rapidamente in più file Excel aperti?
- Come trovare il valore negativo più grande (minore di 0) in Excel?
- Come estrarre tutti i duplicati da una colonna in Excel?
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!