Ich habe zwei Listen in einer Tabelle. Beide Listen bestehen aus zwei Spalten. Eine Spalte enthält die Seriennummern der Computer und die andere Spalte enthält die Person, der der Computer aus der ersten Spalte zugewiesen ist.
Die Listen wurden von zwei verschiedenen Personen erstellt und ich muss sie vergleichen und Abweichungen finden. Hier ist ein Beispiel für dieses Problem: .
In diesem Beispiel müsste ich sicherstellen, dass Person A sowohl in Datensatz A als auch in Datensatz B CPU1 zugewiesen wurde. Wenn eine Diskrepanz besteht, sollte Datensatz B Vorrang haben. Wenn jedoch eine Person in Datensatz A vorhanden ist, in Datensatz B jedoch nicht, sollte diese Person in der Liste bleiben.
Antwort1
Sie müssen also die Liste A mit Liste B vergleichen, bei Bedarf Änderungen vornehmen, damit sie mit Liste B übereinstimmen, und bei Bedarf die Daten von Liste A verwenden. Und vermutlich möchten Sie über auftretende Probleme informiert werden.
Was den ersten Teil betrifft, benötigen Sie eine neue Spalte in Liste A, die am besten zwischen die beiden vorhandenen Spalten eingefügt wird, sodass sie sofort Teil eines beliebigen Bereichs oder einer anderen Referenz an einer beliebigen Stelle in der Tabelle wird. Anschließend muss die nach rechts verschobene Spalte ausgeschnitten und davor eingefügt werden, anstatt dahinter gelassen zu werden, sodass Sie wieder beim Originalmaterial sind und direkt rechts davon eine neue Spalte steht, die neue Spalte jedoch Teil einer beliebigen Referenz zum Material von Liste A ist.
Zum zweiten gibt es mindestens zwei Ereignisse, von denen man vermutet, dass sie Sie interessieren könnten: 1) Liste A hat Daten, die nicht mit Liste B übereinstimmen. Das Ergebnis in der Spalte ist die „richtigere“ Liste B, aber es gibt eine Nichtübereinstimmung, und 2) Nach der Überprüfung ist das angezeigte Ergebnis ein Duplikat anderer angezeigter Ergebnisse. Mit anderen Worten, Sie zeigen mindestens zwei Personen, die einer bestimmten CPU zugewiesen sind, und es sei denn, Liste B enthält Duplikate, liegt dies daran, dass Liste B eine Person angibt und Liste A eine oder mehrere andere Personen mit dieser CPU angibt. Nur das Ergebnis „Person“ aus Liste B kann richtig sein, die anderen stellen also Probleme dar.
Um die Überprüfung durchzuführen, fügen Sie die neue Spalte ein und verschieben Sie dann die Spalte, die gerade zurück an ihren Platz geschoben wurde. Ich gehe davon aus, dass Ihre Daten derzeit Liste A in den Spalten A und B, die schwarze Spalte in Spalte C und Liste B in den Spalten D und E sind. Am Ende haben Sie eine neue Spalte C, die alle anderen eine Spalte nach rechts schiebt, sodass Liste B jetzt in den Spalten E und F ist. Die Kopfzeile ist Zeile 1 in der Tabelle und ich gehe davon aus, dass die Daten die Zeilen 2:11 sind.
Da Liste B alle Unterschiede zu Liste A außer Kraft setzt, sucht die Formel nach jeder Person in Liste A in Liste B und gibt den Inhalt von Liste B zurück, wenn sie einen Eintrag für diese Person hat, und gibt den Inhalt von Liste A zurück, wenn es keinen Eintrag in Liste B gibt:
XLOOKUP($B2,$F$2:$F$5,$E$2:$E$5,$A2,0,1)
Gebraucht ist das schöne, neue, XLOOKUP()
aber wer das nicht hat, braucht eine Index/Match
Lösung, da muss man in Liste B "nach links schauen".
Dann die Probleme. Sie haben mindestens zwei Möglichkeiten, wie Sie mit ihnen umgehen. Wahrscheinlich andere, z. B. könnten Sie ein Makro dafür schreiben, aber ich denke einfach an Formeln. Eine Möglichkeit besteht darin, das Ganze XLOOKUP()
mit Tests für das Problem zu verkomplizieren. Die meisten Leute scheinen lautstark zu schreien und diesen Weg einzuschlagen. Aber es gibt einen wesentlich einfacheren Weg, der eine Menge Feinabstimmungen ermöglicht, wenn dies gewünscht wäre, obwohl Sie hier nur die Grundlagen benötigen. Sie besteht darin, bedingte Formatierung („CF“) zum Testen zu verwenden, anstatt die obige Formel in ein 20-Zeilen-Monster zu verwandeln, das Sie nicht wirklich verstehen, selbst wenn Sie gerade fertig sind.
Mit CF müssen Sie nur die Reihenfolge wählen, in der Sie die Regeln auflisten, damit sie in einer Reihenfolge getestet werden, die richtig funktioniert. (Die meisten Leute überlegen sich zuerst die Tests. Wenn Sie zuerst die Reihenfolge wählen, müssen Sie dann Tests ausarbeiten, die zu dieser Reihenfolge passen. Normalerweise ist es viel einfacher, es andersherum zu machen, also tun es die Leute.)
Wenn also jetzt mehr als eine Person eine bestimmte CPU auflistet, nennt man das „Duplikate“ und CF hat dafür eine eingebaute Regel. Es ist einfach, sie zuerst zu testen, also richten Sie sie ein. Ich komme gleich zum anzuwendenden Format, denn da gibt es einen „Trick“. Erstellen Sie dann eine zweite Regel, die diese Formel für ihren Test verwendet:
=XLOOKUP($B2,$F$2:$F$5,$E$2:$E$5,$A2,0,1)<>$A2
Beachten Sie, dass diese neue Regel sich selbst vor der Regel für Duplikate einfügt. Das ist alles gut, diese Regel funktioniert nicht, wenn Sie sie nach unten verschieben und als zweite Regel aktivieren. Aktivieren Sie das Kontrollkästchen „Stoppen, wenn wahr“.
Nun prüft CF, ob das Ergebnis der Formel mit den ursprünglichen Daten aus Liste A für die Person übereinstimmt. Wenn dies der Fall ist, wird das Format hier angewendet und angehalten. Wenn nicht, wird mit der zweiten Regel fortgefahren.
Die zweite Regel prüft, ob Duplikate vorhanden sind und wendet gegebenenfalls das entsprechende Format an.
Der „Trick“ besteht also darin, eine recht seltene Formatierungsmöglichkeit zu nutzen, um die Fehlermeldungen in die neuen Ergebnisse der Liste A einzufügen (anstatt sich dem Albtraum zu stellen, sie in die Formel der Zelle einzufügen, dem Albtraum der Arbeit und dem Albtraum, jemals wieder alles verstehen zu müssen, um es zu aktualisieren oder zu korrigieren).
Die normale numerische Formatierung ermöglicht Ihnen, die Formatierung für bis zu vier ARTEN von Daten in einer Zelle festzulegen: positive Zahlen, negative Zahlen, Nullen und Text. In allen können Sie Textzeichenfolgen (Plural) in das Format einfügen. Tatsächlich kann ein Format nichts ANDERES als eine Textzeichenfolge sein. Für beide dieser CF-Regeln werden Sie diese Tatsache nutzen. Für die erste Regel verwenden Sie Folgendes, genau so, wie Sie es sehen:
;;;"Liste A stimmt nicht überein"
und verwenden Sie für die zweite Regel Folgendes:
;;;">1 zugewiesen"
Um diese besser hervorzuheben (es handelt sich um einen längeren Text als den „CPU“-Text, aber …), könnten Sie den Text zumindest in einer anderen Farbe formatieren, beispielsweise in einem schönen Rot.
Und wenn Sie nur die Liste ohne festgestellte Probleme benötigen, führen Sie die Formel einfach zu Beginn aus und speichern Sie diesen CF-Kram für einen anderen Tag, an dem Sie eine einfache, unkomplizierte Formel in Ihren Zellen und alle Tests auf Fehler und die Ausgabe entsprechender Meldungen in einfachen Regeln in CF haben möchten, anstatt die Zellformeln zu einem Albtraum zu machen.