Recherche de différences entre les listes (Microsoft Excel)
Il n’est pas rare que les gens conservent les informations sur les clients dans des feuilles de calcul Excel. Si vous disposez d’une feuille de calcul contenant les noms de tous vos clients et d’une autre feuille de calcul contenant les noms de vos clients actifs, vous souhaiterez peut-être utiliser les fonctionnalités d’Excel pour découvrir qui sont vos clients inactifs.
Il existe plusieurs façons d’accomplir cette tâche. La première consiste à utiliser VLOOKUP. Cette fonction de feuille de calcul fonctionne très bien, à condition que vos listes de clients soient classées par ordre alphabétique. Une façon d’utiliser la fonction est d’ajouter une colonne de statut à votre « tous les clients »
feuille de travail. Tout d’abord, assurez-vous de sélectionner vos clients actifs et de les nommer «Actifs». (La façon dont vous définissez un nom pour une plage de cellules sélectionnée est traitée dans d’autres ExcelTips.) Ensuite, dans votre liste complète de clients, ajoutez une colonne (nommée Statut) à droite de vos données existantes. Dans les cellules de la colonne Statut, utilisez la formule suivante:
=IF(ISNA(VLOOKUP(A2,Active,1,FALSE)),"Inactive","Active")
Cette formule suppose que le nom du client est dans la colonne A de la feuille de calcul actuelle. Le résultat de la formule est «Actif» ou «Inactif», selon qu’il existe une correspondance entre le nom en A2 et les noms dans la liste Actif.
Une fois la colonne État en place, vous pouvez utiliser la fonction de filtre automatique d’Excel pour filtrer votre liste en fonction de la colonne d’état. Vous pouvez ensuite facilement afficher les clients inactifs, selon vos besoins.
Il convient de noter que, bien que l’exemple ci-dessus utilise la fonction de feuille de calcul VLOOKUP, vous pouvez tout aussi facilement composer d’autres formules qui utilisent des fonctions telles que RECHERCHEH et MATCH. Ce que vous utilisez dépend de vos préférences personnelles et de la manière dont vos données sont présentées.
Une autre solution consiste à utiliser une macro pour comparer chaque nom de la liste «tous les clients» avec les noms de la liste «clients actifs». Si aucune correspondance n’est trouvée, le nom peut être ajouté en toute sécurité aux « clients inactifs »
liste. La macro suivante fait exactement cela:
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 fait plusieurs hypothèses sur les données examinées.
Premièrement, il suppose que la feuille de calcul «tous les clients» est la première feuille de calcul et que la feuille de calcul «clients actifs» est la seconde. En outre, il est supposé que la troisième feuille de calcul est vide et finira par contenir la liste des clients inactifs. En outre, l’hypothèse est que la colonne A contient un numéro d’identification de client unique et la colonne B contient le nom du client. Lorsque la macro est terminée, la troisième feuille de calcul contient les numéros de client et les noms de tous les clients inactifs.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2053) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.