Non è insolito che le persone conservino le informazioni sui clienti nei fogli di lavoro di Excel. Se hai un foglio di lavoro che contiene i nomi di tutti i tuoi clienti e un altro foglio di lavoro che contiene i nomi dei tuoi clienti attivi, potresti voler usare le capacità di Excel per scoprire chi sono i tuoi clienti inattivi.

Esistono diversi modi per eseguire questa operazione. Il primo è attraverso l’uso di CERCA.VERT. Questa funzione del foglio di lavoro funziona alla grande, a condizione che gli elenchi di clienti siano disposti in ordine alfabetico. Un modo per utilizzare la funzione è aggiungere una colonna di stato a “tutti i client”

foglio di lavoro. Per prima cosa, assicurati di selezionare i tuoi client attivi e di chiamarli “Attivi”. (Il modo in cui si definisce un nome per un intervallo di celle selezionato è trattato in altri ExcelTips.) Quindi, nell’elenco completo dei client, aggiungere una colonna (denominata Stato) a destra dei dati esistenti. Nelle celle della colonna Stato, utilizza la seguente formula:

=IF(ISNA(VLOOKUP(A2,Active,1,FALSE)),"Inactive","Active")

Questa formula presuppone che il nome del cliente sia nella colonna A del foglio di lavoro corrente. Il risultato della formula è “Attivo” o “Inattivo”, a seconda che esista una corrispondenza tra il nome in A2 e i nomi nell’elenco Attivo.

Una volta impostata la colonna Stato, è possibile utilizzare la funzionalità Filtro automatico di Excel per filtrare l’elenco in base alla colonna di stato. È quindi possibile visualizzare facilmente i client inattivi, come desiderato.

Va notato che mentre l’esempio precedente utilizza la funzione del foglio di lavoro CERCA.VERT, è altrettanto facile comporre altre formule che utilizzano funzioni come CERCA.ORIZZ e CONFRONTA. Quello che usi dipende dalle tue preferenze personali e dal modo in cui sono disposti i tuoi dati.

Un’altra soluzione consiste nell’usare una macro per confrontare ogni nome nell’elenco “tutti i client” con i nomi nell’elenco “client attivi”. Se non viene trovata alcuna corrispondenza, il nome può essere tranquillamente aggiunto ai “client inattivi”

elenco. La seguente macro fa proprio questo:

Sub ListInactive()

Dim cell As Range     Dim SearchRng As Range

Set SearchRng = Worksheets("Sheet2").Range("A:A")

Counter = 1 'First row on Sheet3 contains headings     For Each cell In Worksheets("Sheet1")

.Range("A2:A1000") _       .SpecialCells(xlCellTypeConstants)

ID = cell 'Client ID         NM = cell.Offset(0, 1) 'Client name         MatchRow = 0         On Error Resume Next         MatchRow = WorksheetFunction.Match(ID, _           SearchRng, 0)

On Error GoTo 0         If MatchRow = 0 Then             Counter = Counter + 1             Worksheets("Sheet3").Cells(Counter, 1) = ID             Worksheets("Sheet3").Cells(Counter, 2) = NM         End If     Next cell End Sub

La macro fa diverse ipotesi sui dati esaminati.

In primo luogo, si presuppone che il foglio di lavoro “tutti i client” sia il primo foglio di lavoro e che il foglio di lavoro “client attivi” sia il secondo. Inoltre, si presume che il terzo foglio di lavoro sia vuoto e finirà per contenere l’elenco dei client inattivi. Inoltre, si presume che la colonna A contenga un numero ID client univoco e la colonna B contenga il nome del client. Al termine della macro, il terzo foglio di lavoro contiene i numeri di client ei nomi di tutti i client inattivi.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2053) si applica a Microsoft Excel 97, 2000, 2002 e 2003.