[Excel] Excel 2007 Vergleich von Datenreihen?

Habib

Grünschnabel
Hallo zusammen

Ich habe verschiedene Datenreihen:

"1 3 12 18" "4 8 12 19" "5 9 26 10" "2 18 26 28" usw.

Wie kann ich die Vergleichen um heraus zu finden ob in einer Datenreihe zweimal die selbe Zahl ist?

Danke für die Hilfe.

Habib
 
"1 3 12 18" "4 8 12 19" "5 9 26 10" "2 18 26 28"

Wenn du von verschiedenen Datenreihen redest, dann willst du also beispielsweise Zahlen 1, 3, 12 und 18 miteinander vergleichen?

Wenn diese 4 Zahlen auf die Zellen A1, B1, C1 und D1 verteilt sind, dann kannst du folgende Formel nehmen:

Visual Basic:
=SUMME((HÄUFIGKEIT($A1:$D1;$A1:$D1)>0)*1)

EDIT: Hoffe mal den Originaleintrag mit "ANZAHL" hat noch keiner gelesen der war nämlich falsch.
 
Zuletzt bearbeitet:
Danke für die Antwort. Leider war meine Frage wohl ein wenig unverständlich. Ich möchte nicht die Zahlen in der Datenreihe miteinander vergleichen sondern die Datenreihen gegeneinander. Das heisst, dass bei den vier Datenreihen "1, 2, 3 ,4" "5, 6, 7, 8" "9, 10, 1, 2" "11, 12, 3, 14" die dritte Reihe falsch wäre weil 1 und 2 zum zweiten mal in derselben Reihe sind. Es dürfen nie zwei Zahlen in der selben Reihe sein. Klar? Danke.
 
Hallo Habib,

also ich gehe dann mal davon aus das immer eine "Fehler" erzeugt werden soll wenn eine Zahl doppelt vorkommt, egal in welcher Spalte sie steht.

=ZÄHLENWENN($A$1:$D$4;A1)-1

Wenn du die obige Formel als Kriterium bei der bedingten Formatierung der Zellen eingibst, dann solltest du dein Problem gelöst kriegen.
 
Hallo Tombe

Danke für die Antwort. Es soll nur ein "Fehler" erzeugt werden wenn zweimal die gleichen zwei Zahlen in einer Datenreihe vorkommen. Es darf also durchaus die selbe Zahl immer wieder vorkommen.
 
Hallo Habih,

ich glaube ich habe was. Allerdings ist es keine in Excel eingebaute Funktion sondern eine selbst erstellte:

Visual Basic:
Function check(bereich1 As Range)
Dim bereich2 As Range

meldung = ""
treffer = 0
lz = ActiveCell.SpecialCells(xlLastCell).Row
For zeile = 1 To lz
    
        Set bereich2 = ActiveSheet.Range("A" & (zeile) & ":D" & (zeile))
        If bereich1.Address = bereich2.Address Then Exit For
    For Each zelle1 In bereich1
        For Each zelle2 In bereich2
            If zelle1 = zelle2 Then treffer = treffer + 1
        Next

    Next

    If treffer >= 2 Then
        treffer = 0
        meldung = "Es sind ungültige Werte in dieser Zeile"
        Exit For
    End If
    treffer = 0
Next

check = meldung

End Function

Um die Funktion im Tabellenblatt aufzurufen gibst du in die entsprechende Zelle folgende Formel ein:

Visual Basic:
=check($A1:$D1)

Wobei hier der Wert "$A1:$D1" für jede Zeile entsprechend angepasst werden muss.

Wenn ich jetzt in Excel die Werte "1 - 2 - 3 - 4", "5 - 6 - 7 - 8", "1 - 6 - 9 - 5" und "1 - 5 - 4 - 12" eingebe, dann erhalte ich bei der dritten (6 und 5) und vierten (1 und 4) Reihe die Fehlermeldung.

Ist das nun so richtig?
 
Ja, fast. Danke für die Hilfe. Mit dieser Funktion Vergleiche ich jeweils den markierten Bereich mit der Zeile darüber. Ist es möglich den markierten Bereich mit mehr als nur einer Zeile zu Vergleichen?
 
Es wird nicht nur eine Zeile verglichen, du musst nur die Funktion entsprechend eingeben.

Visual Basic:
Zeile 1: =check($A1:$D1)
Zeile 2: =check($A2:$D2)
Zeile 3: =check($A3:$D3)
Zeile 4: =check($A4:$D4)
usw.

Ich hänge mal ein Bild davon dran, dann siehst du was rauskommt.
 

Anhänge

  • vergleich.jpg
    vergleich.jpg
    55,5 KB · Aufrufe: 57
Ah ok, jetzt verstehe ich. Ich kann die Formel nicht einfach kopieren sondern muss sie nach dem kopieren kurz aufrufen und "Enter" drücken. Jetzt klappt's. Danke tombe für die Hilfe.
 
Du musst die Formel ein oder zweimal eingeben, dann diese Zellen markieren und kannst sie dann nach unten ziehen indem du das kleine Kästchen rechts unten am Rahmen anklickst und dann bei gedrückter Maustaste nach unten ziehst. Die Formel wird dabei erweitert.
 

Neue Beiträge

Zurück