Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Doppelte Einträge finden





Frage

Hallo Zusammen Mein Anliegen: Ich habe eine excel-tabelle in der verschiedene Variablen(Zahlen) stehen. Diese sind in Spalte A. In Spalte B,C... sind auch Variablen. Jetzt brauch ich ne Abfrage oder sowas ähnliches. [b] Ich muss wissen ob die Variablen in Spalte B,C... in Spalte A vorkommen. Wenn das der Fall ist muss ein Feld bedingt formatiert oder ein Counter oder ähnliches die doppelten markieren. Wie ist mir eigentlich egal.[/b] Diese Formatierung (wie immer die dann auch aussieht) muss aber berücksichtigen, dass, wenn doppelte in den Spalten z.B. B und C vorhanden sind (aber nicht in Spalte A vorkommen), ignoriert werden müsssen. Hatte schon den Spezialfilter ausprobiert, aber der ist mir zu umständlich, da man ja da immer nur eine Abfrage gleichzeitig machen kann, bzw geht schon für mehrere, aber dann weiß ich ja nimmer welche doppelt sind. Musste jetzt ziemlich schnell gehen, deswegen entschuldigt, die etwas karge Erklärung. Falls ihr meine Fragen nicht versteht bitte nachfagen. Mfg euer H@rc|wAr€h/-\ck3R

Antwort 1 von Saarbauer

Hallo,

mit der Funktion

=VERGLEICH(a1;b1:b40;0)

kann man solchen Vergleich durchführen, funktioniert nur für eine Spalte (hier b). Müßte für die anderen Spalten entsprechen ausgeführt werden.

Gruß

Helmut

Antwort 2 von coros

Hi hardwarehacker,

oder Du machst das mit einem VBA Code. Kopiere dazu nachfolgendes Makro in ein StandardModul und weise es einer Schaltfläche zu.

Option Explicit

Sub Daten_vergleichen_über_3_Spalten()
Dim Suchname As String, letzte_Zeile_Bereich As Long, _
Wiederholungen As Long, Addresse As String, Zeilenwiederholungen As Long, _
letzte_Zeile_Spalte_A As Long, Spaltenwiederholung As Integer
Application.ScreenUpdating = False
letzte_Zeile_Spalte_A = Range("A65536").End(xlUp).Row
letzte_Zeile_Bereich = ActiveSheet.UsedRange.Rows.Count
For Wiederholungen = 2 To letzte_Zeile_Spalte_A
Suchname = Cells(Wiederholungen, 1)
For Zeilenwiederholungen = 2 To letzte_Zeile_Bereich
For Spaltenwiederholung = 2 To 3
If Cells(Zeilenwiederholungen, Spaltenwiederholung) = Suchname Then
Cells(Wiederholungen, 1).Interior.ColorIndex = 4
Cells(Zeilenwiederholungen, Spaltenwiederholung).Interior.ColorIndex = 4
End If
Next
Next
Next
End Sub



Das obige Makro vergleicht die Inhalte der Spalte A mit denen aus Spalte B und C.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Ich hoffe, Du kommst klar. Bei Fragen oder Problemen melde Dich.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 3 von hardwarehacker

Hallo Zusammen

Ich habe jetzt beide Vorschläge mal ausprobiert.

Habe es mit beiden Lösungen nicht geschafft, wie ich es mir erhofft hatte.


Zu Lösung 1:
Das Problem beim "Vergleich" ist, dass ich für eine korrekte Anzeige im "Suchkriterium" immer ein bestimmtes Feld auswählen muss. Also so wie du es geschrieben hattest: =VERGLEICH(a1;b1:b40;0)
Wenn ich jetzt aber diese Formel nach unten zieh steht in der nächsten
=VERGLEICH(A2; B2:B41;0)
Das heißt ja jetzt, dass die Zeile 1 in Spalte B nicht mehr mit verglichen wird und für jede weiter Zeile geht diese Zahl um 1 nach oben.
Da meine Tabelle aber ziemlich lang ist, kann ich die nicht alle per Hand ändern.

Gibt es hier Möglichkeiten die Suchmatrix immer bei 1 starten zu lassen ohne dass man dies per Hand eingibt?

Jetzt könnte man zwar folgende Formel benutzen: =VERGLEICH(A:A;B:B;0) doch jetzt passiert folgendes.
In Spalte A steht z.B. 555555
In Spalte B steht z.B. 55
Jetzt zählt die Formel als wahr obwohl es unterschiedliche zahlen sind.

Somit schließt sich diese Methode aus, außer es gibt noch einen Trick bei der Formatierung der Zellerweiterung (markierte Zelle am rechten unteren Rand nach unten ziehen) damit in Spalte B

Hatte davor noch Wenn-Formeln ausprobiert und da hatte ich das gleiche Problem, wenn man die ganze Spalte als Suchkriterium angibt.

Bei weiteren herumprobieren merkte ich leider, dass mein excel etwas verbugt ist.
Nichts desto trotz, herzlichen dank.


Zu Lösung 2:
Erstmal danke für deine Antwort.

Habe es aber nicht geschafft. Hab ein Modul erstellt und deinen Quellcode reinkopiert.

Habe danach noch einen button erstellt und ebenfalls den quellcode reinkopiert - da bringt er aber immer eine Fehlermeldung . End Sub erwartet. Ok auch kein Problem hab ich halt end sub reingeschrieben. Sieht dann so aus

Private Sub CommandButton1_Click()
End Sub
Sub Daten_vergleichen_über_3_Spalten()
Dim Suchname As String, letzte_Zeile_Bereich As Long, _
Wiederholungen As Long, Addresse As String, Zeilenwiederholungen As Long, _
letzte_Zeile_Spalte_A As Long, Spaltenwiederholung As Integer
Application.ScreenUpdating = False
letzte_Zeile_Spalte_A = Range("A65536").End(xlUp).Row
letzte_Zeile_Bereich = ActiveSheet.UsedRange.Rows.Count
For Wiederholungen = 2 To letzte_Zeile_Spalte_A
Suchname = Cells(Wiederholungen, 1)
For Zeilenwiederholungen = 2 To letzte_Zeile_Bereich
For Spaltenwiederholung = 2 To 3
If Cells(Zeilenwiederholungen, Spaltenwiederholung) = Suchname Then
Cells(Wiederholungen, 1).Interior.ColorIndex = 4
Cells(Zeilenwiederholungen, Spaltenwiederholung).Interior.ColorIndex = 4
End If
Next
Next
Next
End Sub


ist das end sub hier an der richtigen Stelle gesetzt??

Oder kann ich in einer anderen Art und Weise noch auf das Modul verlinken?

Bzw - ich frag mich was eigentlich passieren soll, wenn ich das Makro ausführe !!!???!!!

DANKE soweit - Bitte um weitere Unterstützung

Mfg
euer H@rc|wAr€h/-\ck3R

Antwort 4 von Saarbauer

Hallo,

druch ein vor den Zeilennummer gesetztes $-Zeichen kann man die Änderung des Wetes Ausschließen.
In deinem Fall, folgende Abänderung:

=VERGLEICH(a1;b$1:b40;0)

Geht auch bei Spalten oder beidem.

Gruß

Helmut

Antwort 5 von hardwarehacker

@ Saarbauer
Werds gleich mal ausprobieren

@coros
Habe jetzt gerade ein wenig auf deiner HP rumgeschaut. Die Zellen müssten also grün werden. Passiert aber nix

Antwort 6 von hardwarehacker

@ colos
Habe mir jetzt dein fertiges Programm runtergeladen.
Funktioniert echt super. Genau das, was ich wollte. Du bist spitze.


@Saarbauer
Danke auch an deinen Hinweis. Der hilft mir auch sehr für meine anderen Tabellen

Antwort 7 von coros

Moin hardwarehacker,

sorry, dass ich nicht auf Deine Fragen geantwortet habe, aber ich hatte gestern genug Sachen um die Ohren, dass ich noch nicht mal, was ziemlich selten vorkommt, an meinem PC und somit auch nicht im Internet war. Aber wie ich sehe, hast Du es ja auch alleine hinbekommen. Danke Dir für die Rückmeldung.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.