Come eseguire una ricerca verticale e restituire il colore di sfondo insieme al valore cercato in Excel?
Supponiamo che tu abbia una tabella come mostrato nello screenshot sottostante. Ora vuoi verificare se un valore specifico è presente nella colonna A e quindi restituire il valore corrispondente insieme al suo colore di sfondo nella colonna C. Come fare? Il metodo descritto nell'articolo può aiutarti a risolvere il problema.
Eseguire una ricerca verticale e restituire il colore di sfondo con il valore cercato tramite una funzione definita dall'utente
Procedi come segue per cercare un valore e restituire il suo valore corrispondente insieme al colore di sfondo in Excel.
1. Nel foglio di lavoro che contiene il valore che desideri cercare, fai clic con il tasto destro sulla scheda del foglio e seleziona Visualizza codice dal menu contestuale. Vedi screenshot:
2. Nella finestra di Microsoft Visual Basic for Applications che si apre, copia il seguente codice VBA nella finestra del Codice.
Codice VBA 1: Eseguire una ricerca verticale e restituire il colore di sfondo con il valore cercato
Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
Dim xKeys As Long
Dim xDicStr As String
On Error Resume Next
Application.ScreenUpdating = False
xKeys = UBound(xDic.Keys)
If xKeys >= 0 Then
For I = 0 To UBound(xDic.Keys)
xDicStr = xDic.Items(I)
If xDicStr <> "" Then
Range(xDic.Keys(I)).Interior.Color = _
Range(xDic.Items(I)).Interior.Color
Else
Range(xDic.Keys(I)).Interior.Color = xlNone
End If
Next
Set xDic = Nothing
End If
Application.ScreenUpdating = True
End Sub
3. Quindi fai clic su Inserisci > Modulo e copia il seguente codice VBA 2 nella finestra del Modulo.
Codice VBA 2: Eseguire una ricerca verticale e restituire il colore di sfondo con il valore cercato
Public xDic As New Dictionary
Function LookupKeepColor (ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
Dim xFindCell As Range
On Error Resume Next
Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
If xFindCell Is Nothing Then
LookupKeepColor = ""
xDic.Add Application.Caller.Address, ""
Else
LookupKeepColor = xFindCell.Offset(0, xCol - 1).Value
xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address
End If
End Function
4. Dopo aver inserito i due codici, fai clic su Strumenti > Riferimenti. Quindi seleziona la casella Microsoft Script Runtime nella finestra di dialogo Riferimenti – VBAProject. Vedi screenshot:
5. Premi i tasti Alt + Q per uscire dalla finestra di Microsoft Visual Basic for Applications e tornare al foglio di lavoro.
6. Seleziona una cella vuota adiacente al valore da cercare, quindi inserisci la formula =LookupKeepColor(E2,$A$1:$C$8,3) nella Barra delle formule (F), e poi premi il tasto Invio.
Nota: Nella formula, E2 contiene il valore che desideri cercare, $A$1:$C$8 è l'intervallo della tabella e il numero 3 indica che il valore corrispondente che desideri restituire si trova nella terza colonna della tabella. Modificali secondo necessità.
7. Mantieni selezionata la prima cella risultante e trascina la maniglia di riempimento verso il basso per ottenere tutti i risultati insieme al loro colore di sfondo. Vedi screenshot.
Articoli correlati:
- Come copiare la formattazione della cella di origine quando si utilizza la funzione Cerca.vert in Excel?
- Come eseguire una ricerca verticale e restituire il formato data invece di un numero in Excel?
- Come utilizzare la funzione Cerca.vert e Somma in Excel?
- Come eseguire una ricerca verticale e restituire il valore nella cella adiacente o successiva in Excel?
- Come eseguire una ricerca verticale e restituire vero o falso / sì o no 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!