Finden von Unterschieden zwischen Listen (Microsoft Excel)
Es ist nicht ungewöhnlich, dass Kundeninformationen in Excel-Arbeitsblättern gespeichert werden. Wenn Sie ein Arbeitsblatt haben, das die Namen aller Ihrer Clients enthält, und ein anderes Arbeitsblatt, das die Namen Ihrer aktiven Clients enthält, möchten Sie möglicherweise die Funktionen von Excel verwenden, um festzustellen, wer Ihre inaktiven Clients sind.
Es gibt verschiedene Möglichkeiten, diese Aufgabe auszuführen. Der erste ist durch die Verwendung von VLOOKUP. Diese Arbeitsblattfunktion funktioniert hervorragend, vorausgesetzt, Ihre Kundenlisten sind in alphabetischer Reihenfolge angeordnet. Eine Möglichkeit, die Funktion zu verwenden, besteht darin, Ihren „allen Clients“
eine Statusspalte hinzuzufügen Arbeitsblatt. Stellen Sie zunächst sicher, dass Sie Ihre aktiven Clients auswählen und sie „Aktiv“ nennen. (Wie Sie einen Namen für einen ausgewählten Zellbereich definieren, wird in anderen ExcelTips. behandelt.) Fügen Sie dann in Ihrer vollständigen Liste der Clients rechts neben Ihren vorhandenen Daten eine Spalte (mit dem Namen Status) hinzu. Verwenden Sie in den Zellen der Spalte Status die folgende Formel:
=IF(ISNA(VLOOKUP(A2,Active,1,FALSE)),"Inactive","Active")
Diese Formel setzt voraus, dass sich der Name des Kunden in Spalte A des aktuellen Arbeitsblatts befindet. Das Ergebnis der Formel ist entweder „Aktiv“ oder „Inaktiv“, je nachdem, ob zwischen dem Namen bei A2 und den Namen in der Liste „Aktiv“ eine Übereinstimmung besteht.
Sobald die Statusspalte eingerichtet ist, können Sie die AutoFilter-Funktion von Excel verwenden, um Ihre Liste basierend auf der Statusspalte zu filtern. Sie können dann die inaktiven Clients nach Bedarf einfach anzeigen.
Es ist zu beachten, dass das obige Beispiel zwar die VLOOKUP-Arbeitsblattfunktion verwendet, Sie jedoch genauso einfach andere Formeln erstellen können, die Funktionen wie HLOOKUP und MATCH verwenden. Welche Sie verwenden, hängt von Ihren persönlichen Vorlieben und der Art und Weise ab, wie Ihre Daten angeordnet sind.
Eine andere Lösung besteht darin, ein Makro zu verwenden, um jeden Namen in der Liste „Alle Clients“ mit den Namen in der Liste „Aktive Clients“ zu vergleichen. Wenn keine Übereinstimmung gefunden wird, kann der Name sicher zu den „inaktiven Clients“
hinzugefügt werden aufführen. Das folgende Makro macht genau das:
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
Das Makro macht verschiedene Annahmen über die untersuchten Daten.
Zunächst wird davon ausgegangen, dass das Arbeitsblatt „Alle Clients“ das erste Arbeitsblatt und das Arbeitsblatt „Aktive Clients“ das zweite ist. Außerdem wird davon ausgegangen, dass das dritte Arbeitsblatt leer ist und die Liste der inaktiven Clients enthält. Ferner wird angenommen, dass Spalte A eine eindeutige Client-ID-Nummer enthält und Spalte B den Namen des Clients enthält. Wenn das Makro fertig ist, enthält das dritte Arbeitsblatt die Client-Nummern und Namen aller inaktiven Clients.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (2053) gilt für Microsoft Excel 97, 2000, 2002 und 2003.