Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

2 Werte vergleichen





Frage

Hiho, also ich habe in Excel 6 Spalten. In 2 davon, hab ich jeweils eine Zahl die ich vergleichen will. wenn die 2 zahlen identisch sind dann soll nichts passieren, sind sie aber unterschiedlich soll die zahl in der 2ten zeile rot werden o.ä.... wie mach ich das ? .... danke für eure hilfe ...

Antwort 1 von pelle

Hallo Soldier,

schau dir mal die bedingte Formatierung an!

Menue Format=>bedingte Formatierung.

gruss
pelle

Antwort 2 von Soldier

danke erstmal dazu, haut prima hin .... hab noch nen anderes problem ...

hab eine OP-Liste(Offene Posten Liste) ich hoffe es sagt irgeneinem etwas.

Da hab ich Kundenname, Kundennummer, Rechnungsnummer, Rechnungsdatum, Rechnungsbetrag.

Dann will ich anhand der OP-Liste = andere Excel Tabelle, die Werte beider Tabellen vergleichen.

Es sollen alle 5 Merkmale überprüft werden (Kundenname usw.) .... ist es richtig soll nichts passieren, ist es falsch oder es fehlt ein Kunde soll es Rot angemarkert werden und der Name dazugeschrieben werden.


Welche Funktionen muss ich nutzen und wie müssen diese aufgebaut sein ? danke für eure hilfe ....

Antwort 3 von CaroS

Hallo Soldier,

sowas funktioniert unter bestimmten Voraussetzungen recht einfach, wenn nämlich in mindestens einer der 5 Spalten alle Werte eindeutig sind (wie z. B. vielleicht die Kundennummer oder Rechnungsnummer). Steht eine Kundennummer allerdings mehrfach in der Liste, weil der Kunde mehrere offene Posten hat, dann ist die Kundennummer-Spalte genauso wenig eindeutig wie die Kunden-Spalte mit den 6 Schmidts.

Nehmen wir als Beispiel die Rechnungsnummer in Spalte C und als Tabellennamen "Tbl01" und "Tbl02". Du markierst erst alle Daten A1:E350 in Tbl01 und gibst in der bedingten Formatierung die Formel ist:

=(ZÄHLENWENN(Tbl02!$C$1:$C$420; $C1) = 0)

und das gewünschte Format an. Danach machst Du es genau umgekehrt, markierst alle Daten A1:E420 in Tbl02 und gibst in der bedingten Formatierung die Formel ist:

=(ZÄHLENWENN(Tbl01!$C$1:$C$350; $C1) = 0)

und das entsprechende Format an. Wenn jetzt was "bunt" wird o. ä., dann ist genau das in der anderen Tabelle nicht enthalten.

Gruß,
CaroS

Antwort 4 von Soldier

hmm und gibts irgendeine möglichkeit das zu umgehen ? also namen ist nicht das problem, die gibts nur einmal, aber rechnungen sieht schlecht aus

Antwort 5 von Soldier

also ich hab rausgefunden das das mit excel direkt nicht geht, d.h. es müsste jemand das ganze in visual basic coden ...... und ich kann leider kein VB :(

Antwort 6 von CaroS

Hallo Soldier,

wieso soll was nicht gehen? Was hast Du da konkret rausgefunden? Und zu Deiner Antwort 4: Was willst Du da umgehen? Das habe ich nicht ganz verstanden.

Meinst Du die Eindeutigkeit? Was gibt´s da zu umgehen, entweder die Werte sind eindeutig oder sie sind es nicht. Die Werte verändern kannst Du deswegen ja i. a. nicht. Außerdem würde dann VBA genauso wenig weiterhelfen.

Was an der Lösung in AW3 funktioniert denn konkret nicht?

Wenn es nur die fehlende Eindeutigkeit der Werte in jeder einzelnen Spalte ist, da kann man oft was machen, indem man mehrere Spalten (in einer Hilfsspalte) so miteinander kombiniert, dass man zu einer Eindeutigkeit kommt.

Wie das geht, würden wir/würde ich Dir erklären. Aber nun erkläre Du erstmal, was los ist und wo es nicht weitergeht.

Gruß,
CaroS

Antwort 7 von Soldier

also bei der bedingten formatierung geht es leider nicht :( da kommt immer der fehler das verweise auf andere tabellenblätter nicht zulässig sind .....


Meine Vorstellungen:

2 Tabellenblätter á 6 Spalten

jeweils eine Tabelle pro Tabellenblatt

Tabellenblatt 1:
6 Werte je Zeile die identisch sein müssen mit 6 Werten auf Tabellenblatt 2.




Ich würde gerne angezeigt haben wo keine Identität besteht, d.h. ein Wert anderst ist oder sogar fehlt.

Sorry das ich mich erst so undeutlich ausgedrückt hab aber ich hab nicht soviel mit Excel zu tun und deshalb fand ich das schwer zu erklären.

Antwort 8 von nighty

hi all :)

schliesse mich an mit zwei eindeutigen zellen ist es besser,hier sind es spalte a+b

erste tabelle ziel
zweite tabelle quelle

zweideutigkeit bei spalte c d e f noch offen,was im normalfall wohl nicht vorkommen wird,makro noch optimierungsbeduerftig

gruss nighty

Option Explicit
Sub suchen()
Dim zaehler1 As Long
Dim suche1 As Range
Dim suche2 As Range
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set suche1 = Sheets(2).Range("A1" & ":A" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 2).Find(Sheets(1).Range("A" & zaehler1))
Set suche2 = Sheets(2).Range("B1" & ":B" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 2).Find(Sheets(1).Range("B" & zaehler1))
If Not suche1 Is Nothing And Not suche2 Is Nothing And suche1.Row = suche2.Row And _
Sheets(1).Range("A" & zaehler1) <> "" And Sheets(1).Range("B" & zaehler1) <> "" Then
If Sheets(1).Range("C" & zaehler1) <> Sheets(2).Range("C" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte C" & " Spalte C", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("C" & zaehler1) = Sheets(2).Range("C" & suche1.Row)
End If
End If
If Sheets(1).Range("D" & zaehler1) <> Sheets(2).Range("D" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte D" & " Spalte D", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("D" & zaehler1) = Sheets(2).Range("D" & suche1.Row)
End If
End If
If Sheets(1).Range("E" & zaehler1) <> Sheets(2).Range("E" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte E" & " Spalte E", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("E" & zaehler1) = Sheets(2).Range("E" & suche1.Row)
End If
End If
If Sheets(1).Range("F" & zaehler1) <> Sheets(2).Range("F" & suche1.Row) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte F" & " Spalte F", vbYesNo)
If beenden = vbYes Then
Sheets(1).Range("F" & zaehler1) = Sheets(2).Range("F" & suche1.Row)
End If
End If
End If
Next zaehler1
End Sub

Antwort 9 von nighty

hi all :)

zweideutigkeit bei spalte c d e f noch offen
bei sich wiederholenden zeichen in folge als suchbegriff

gruss nighty

Antwort 10 von nighty

hi all :)

die zeile vergass ich noch

Dim beenden As String

am einfang einfuegen

gruss nighty

Antwort 11 von CaroS

Hallo Soldier,

ich mach mal mit der angefangenen Formellösung weiter, habe nightys VBA-Code noch nicht probiert. (Zu AW3, 5 und 7:) Tut mir leid, da habe ich nicht dran gedacht, dass das von einer Tabelle zur anderen nicht geht. Ich kriege dieselbe Meldung:
Bezüge auf andere Tabellen oder Arbeitsmappen dürfen in dem Kriterium Bedingte Formatierung nicht verwendet werden. [OK]


Aber so ist das eben, da schreibst Du in AW5 einfach nur, dass es nicht geht, ich frage in AW6 nach, was nicht geht, und dann Du in AW7, dass die bedingte Formatierung nicht geht. Das hättest Du auch gleich schreiben können, der Aufwand ist derselbe.

Ein ernstes Problem entsteht dadurch allerdings nicht, denn das lässt sich alles mit 2 Hilfsspalten (in jeder Tabelle eine) lösen, die Du wahrscheinlich sowieso gebraucht hättest, um eine Spalte mit eindeutigen Werten zu erzeugen. Ich nehme mal an, dass die Kombination aus Kundenname, Kundennummer und Rechnungsnummer eindeutig ist und dass diese Werte in den Spalten A bis C stehen. (Sonst Formeln unten anpassen.)

Benutze in beiden Tabellen einfach irgendeine Spalte rechts von Deinen Daten, z. B. Spalte H, markiere sie und gib folgende Formel ein:

= Tbl02!A1 & "|" & Tbl02!B1 & "|" & Tbl02!C1 in Tabelle 1 (ggf. Tabellennamen "Tbl01"
= Tbl01!A1 & "|" & Tbl01!B1 & "|" & Tbl01!C1 in Tabelle 2 . . . . und "Tbl02" anpassen.)

Die Zeilennummer 1 in A1, B1 und C1 müsstest Du anpassen, falls Deine Daten erst weiter unten beginnen, so dass in jeder Hilfszelle immer die Daten derselben Zeile zusammengefasst werden. Du musst in beiden Tabellen auch nicht unbedingt dieselbe Spalte als Hilfsspalte verwenden. Wenn es in Tabelle 2 z. B. die Spalte G ist, dann musst Du nur bei der letzten Formel aufpassen (G oder H verwenden).

Es geht jetzt weiter wie in AW3, wieder mit "Tbl01" und "Tbl02" als Tabellennamen. Du markierst erst alle Daten A1:F350 in Tbl01 und gibst in der bedingten Formatierung die Formel ist:

=(ZÄHLENWENN($H$1:$H$420; $A1 & "|" & $B1 & "|" & $C1) = 0)

und das gewünschte Format an. Danach machst Du es genau umgekehrt, markierst alle Daten A1:F420 in Tbl02 und gibst in der bedingten Formatierung die Formel ist:

=(ZÄHLENWENN($G$1:$G$420; $A1 & "|" & $B1 & "|" & $C1) = 0) (G oder H verwenden)

und das entsprechende Format an. Wenn jetzt was "bunt" wird o. ä., dann ist genau das in der anderen Tabelle nicht enthalten. Fehlende Zeilen einfügen kann man mit Formeln aber nicht, das ist man dann wirklich auf VBA oder Kopieren per Hand angewiesen. Aber probier jetzt erstmal das aus, dann sehen wir weiter.

Gruß,
CaroS

Antwort 12 von nighty

hi all :)

noch ein wenig optimiert :)

gruss nighty

Option Explicit
Sub suchen()
Dim zaehler1 As Long
Dim zaehler2 As Long
Dim suche1 As Range
Dim suche2 As Range
Dim beenden As String
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set suche1 = Sheets(2).Range("A1" & ":A" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1).Find(Sheets(1).Range("A" & zaehler1))
Set suche2 = Sheets(2).Range("B1" & ":B" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1).Find(Sheets(1).Range("B" & zaehler1))
If Not suche1 Is Nothing And Not suche2 Is Nothing And Sheets(1).Cells(zaehler1, 1) <> "" And Sheets(1).Cells(zaehler1, 2) <> "" And suche1.Row = suche2.Row Then
For zaehler2 = 3 To 6
If Sheets(1).Cells(zaehler1, zaehler2) <> Sheets(2).Cells(suche1.Row, zaehler2) Then
beenden = MsgBox("Zwei zellen die nicht identisch sind !" & Chr$(13) & _
Chr$(13) & "Ergaenzen ?" & Chr$(13) & Chr$(13) & Sheets(1).Name & " " & Sheets(2).Name & Chr$(13) & Chr$(13) _
& " Zeile" & zaehler1 & " Zeile" & suche1.Row _
& Chr$(13) & " Spalte " & Chr(64 + zaehler2) & " Spalte " & Chr(64 + zaehler2), vbYesNo)
If beenden = vbYes Then
Sheets(1).Range(Chr(64 + zaehler2) & zaehler1) = Sheets(2).Range(Chr(64 + zaehler2) & suche1.Row)
End If
End If
Next zaehler2
End If
Next zaehler1
End Sub

Antwort 13 von nighty

hi all :)

spalte a wie b muessen besetzt sein

spalten c bis f erfolgt eine prüfung
mit abfrage auf abgleich

gruss nighty

Antwort 14 von Aliba

Hi,

von mir auch ein Lösungsvorschlag über bedingte Formatierung:

Es gibt zwei Tabellenblätter, Tabelle1 und Tabelle2

Tabelle1 und Tabelle2 haben identische Struktur.
1. Zeile Überschriften (identisch) bis Spalte F
Ab Zeile 2 die Daten.
Es wird Tabelle2 mit Tabelle1 abgeglichen.

In Tabelle1 Bereich A1 bis zum letzten EIntrag in Spalte A markieren, dann EINFÜGEN - NAMEN - DEFINIEREN
dann als Namen vergeben: Name
Wiederum in Tabelle1 Bereich von A1 bis Fx markieren, EINFÜGEN - NAMEN - DEFINIEREN , hier dann eingeben : Daten

In Tabelle2 Bereich von A1 bis Fx markieren, FORMAT - bedingte Formatierung: Formel ist:
=WENN($A1="";FALSCH;WENN(ISTNV(VERGLEICH($A1;Name;0));WAHR;WENN(SVERWEIS($A1;Daten;SPALTE(A1);0)<>A1;WAHR;FALSCH)))

Format vergeben und das wars.

Es wird in Tabelle2 die ganze Datenzeile markiert, wenn der Name in Tabelle1 nicht auftaucht, ansonsten werden in der Datenzeile die Zellen markiert, die von Tabelle1 abweichen.
Voraussetzung ist natürlich die Eindeutigkeit der Namen.

CU Aliba

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: