Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gleiche Werte in mehreren Tabellen finden

Gleiche Werte in mehreren Tabellen finden
02.04.2018 08:30:08
erichm
Hallo,
ich habe 10 Tabellenblätter, die alle gleich strukturiert sind.
In der Spalte S ab Zeile 3 stehen unterschiedliche Zahlen zwischen -1.000 und +1.000; die Zahlen sind auch unterschiedlich im Vergleich der jeweiligen Tabellen.
Es kommt aber vor, dass zufällig in der gleichen Zelle von zwei oder mehr Tabellen die gleichen Zahlen stehen - und diese möchte ich finden und zählen.
Mein Lösungsansatz: Vor die erste Tabelle füge ich die Tabelle "Beginn" und nach der letzten Tabelle die Tabelle "Ende" ein.
Jetzt suche ich mit ZÄHLENWENN in jeder Tabelle in der Zelle R3 ob der Wert in S3 mehrfach vorkommt:
=ZÄHLENWENN(Beginn:Ende!S3;S3)
Die Formel bringt aber eine Fehlermeldung #WERT!
Die Formel =SUMME(Beginn:Ende!S3) funktioniert aber.
Was muss ich bei der ZÄHLENWENN-Formel ändern?
Besten Dank für eine Hilfe!
mfg
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gleiche Werte in mehreren Tabellen finden
05.04.2018 06:56:42
erichm
Danke, da ich aber variable Suchbegriffe in jeder Zeile habe, passt das nicht ganz und ist mir auch etwas zu schwierig, anzupassen.
mfg
Anzeige
AW: Gleiche Werte in mehreren Tabellen finden
02.04.2018 11:33:52
fcs
Hallo Erich,
die Verwendung von Zellbereichen über mehrere Tabellenblätter ist auf wenige Funktionen begrenzt - meist Statistische Funktionen wie SUMME, MAX, MIN, MITTELWERT, VARIANZ; STABW etc.
Hier kommst wahrscheinlich nur mit einer benutzerdefinierten VBA-Funktion weiter.
Nachfolgend eine Variante.
Gruß
Franz
'in einem allgemeinen Modul der Datei
Public Function fncZaehlenSpezial(varWert, sBlatt1$, sBlatt2$, rngBereich As Range) As Long
'Zählt die Anzahl von varWert im Zellbereich über mehrere Tabellenblätter
'Formelbeispiel:   =fncZaehlenSpezial(S3;"Beginn";"Ende";S3)+HEUTE()*0
Dim lngErgebnis As Long
Dim index1 As Integer, index2 As Integer, sBereich As String
Dim Zelle As Range, iBlatt As Integer
sRange = rngBereich.Address
index1 = ThisWorkbook.Worksheets(sBlatt1).Index
index2 = ThisWorkbook.Worksheets(sBlatt2).Index
lngErgebnis = 0
For iBlatt = index1 To index2
For Each Zelle In ThisWorkbook.Worksheets(iBlatt).Range(sRange).Cells
If Zelle.Value = varWert Then
lngErgebnis = lngErgebnis + 1
End If
Next
Next
fncZaehlenSpezial = lngErgebnis
End Function

Anzeige
AW: Gleiche Werte in mehreren Tabellen finden
05.04.2018 07:00:57
erichm
Hallo Franz,
danke; die Lösung wäre natürlich optimal.
Derzeit erhalte ich aber die Fehlermeldung #WERT!.
Änderungen gelingen mir leider nicht.
Für sRange habe ich die fehlende Variable noch mit As Range ergänzt.
Besten Dank für eine nochmalige Hilfe.
mfg
AW: Gleiche Werte in mehreren Tabellen finden
05.04.2018 21:21:29
fcs
Hallo Erich,
sRange muss als String deklariert werden, denn rngBereich.Address liefert den Zellbereich als Text.
Dim sRange as String

Gruß
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Gleiche Werte in mehreren Tabellen finden


Schritt-für-Schritt-Anleitung

Um gleiche Werte in verschiedenen Tabellen zu finden, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Vorbereitung der Tabellen: Stelle sicher, dass alle Tabellenblätter gleich strukturiert sind und die relevanten Daten in der gleichen Spalte stehen.
  2. Erstelle eine Hilfstabelle: Füge eine Hilfstabelle (z.B. "Beginn" und "Ende") vor und nach den zu vergleichenden Tabellen ein.
  3. Formel zur Zählung der Werte: Verwende die folgende Formel, um die Werte in der Spalte S ab Zeile 3 zu zählen:
    =ZÄHLENWENN(Beginn:Ende!S3; S3)

    Diese Formel zählt, wie oft der Wert aus der Zelle S3 in den angegebenen Tabellenblättern vorkommt.

  4. Benutzerdefinierte VBA-Funktion: Wenn du eine komplexere Abgleichung benötigst, kannst du eine VBA-Funktion erstellen. Hier ist ein Beispiel:
    Public Function fncZaehlenSpezial(varWert, sBlatt1$, sBlatt2$, rngBereich As Range) As Long
       Dim lngErgebnis As Long
       Dim index1 As Integer, index2 As Integer, sRange As String
       Dim Zelle As Range, iBlatt As Integer
       sRange = rngBereich.Address
       index1 = ThisWorkbook.Worksheets(sBlatt1).Index
       index2 = ThisWorkbook.Worksheets(sBlatt2).Index
       lngErgebnis = 0
       For iBlatt = index1 To index2
           For Each Zelle In ThisWorkbook.Worksheets(iBlatt).Range(sRange).Cells
               If Zelle.Value = varWert Then
                   lngErgebnis = lngErgebnis + 1
               End If
           Next
       Next
       fncZaehlenSpezial = lngErgebnis
    End Function

Häufige Fehler und Lösungen

  1. Fehlermeldung #WERT!: Diese Meldung tritt auf, wenn du versuchst, Zellbereiche über mehrere Tabellenblätter mit Funktionen zu verwenden, die dies nicht unterstützen. Stelle sicher, dass du die richtigen Funktionen wie ZÄHLENWENN oder eine benutzerdefinierte VBA-Funktion verwendest.

  2. Variablen nicht deklariert: Wenn du eine benutzerdefinierte Funktion erstellst, stelle sicher, dass alle Variablen korrekt deklariert sind, z.B. Dim sRange As String.

  3. Falsche Zellbezüge: Achte darauf, dass die Zellbezüge in deinen Formeln korrekt sind. Überprüfe, ob du die richtige Tabelle und den richtigen Bereich verwendest.


Alternative Methoden

Es gibt verschiedene Methoden, um gleiche Werte in zwei Tabellen zu finden:

  • Bedingte Formatierung: Du kannst die bedingte Formatierung verwenden, um doppelte Werte in den Tabellen zu markieren. Dies funktioniert gut für visuelle Vergleiche.
  • Power Query: Eine weitere Möglichkeit ist die Verwendung von Power Query, um Daten aus mehreren Tabellen zu kombinieren und die Unterschiede zu analysieren.
  • Pivot-Tabellen: Pivot-Tabellen können helfen, Daten zusammenzufassen und gleiche Werte schnell zu identifizieren.

Praktische Beispiele

  • Beispiel 1: Wenn du die Werte in zwei Tabellen mit den Namen "Tabelle1" und "Tabelle2" vergleichen möchtest, kannst du die Formel anpassen:

    =ZÄHLENWENN(Tabelle1!S3; Tabelle2!S3)

    Diese Formel zählt, ob der Wert in Zelle S3 von "Tabelle1" auch in "Tabelle2" vorkommt.

  • Beispiel 2: Um alle Werte in der Spalte S zu zählen, die in mehreren Tabellen vorkommen, kannst du die benutzerdefinierte Funktion fncZaehlenSpezial verwenden und in einer neuen Zelle aufrufen:

    =fncZaehlenSpezial(S3; "Beginn"; "Ende"; S3)

Tipps für Profis

  • VBA anpassen: Wenn du oft mit verschiedenen Tabellen arbeitest, erwäge, deine VBA-Funktion so anzupassen, dass sie flexibel auf verschiedene Zellbereiche und Tabellenblätter zugreifen kann.
  • Makros nutzen: Erstelle Makros, die häufige Aufgaben automatisieren, wie das Vergleichen von Tabellen oder das Markieren von gleichen Werten.
  • Datenvalidierung: Verwende Datenvalidierung, um sicherzustellen, dass die eingegebenen Werte korrekt sind und somit die Suche nach gleichen Werten in 2 Tabellen einfacher wird.

FAQ: Häufige Fragen

1. Kann ich die gleichen Werte in mehreren Tabellenblättern finden? Ja, du kannst die Funktion ZÄHLENWENN oder eine benutzerdefinierte VBA-Funktion verwenden, um die gleichen Werte in mehreren Tabellen zu finden.

2. Wie vergleiche ich zwei Tabellen und markiere die gleichen Werte? Du kannst die bedingte Formatierung verwenden, um doppelte Werte zu markieren, oder eine Formel wie ZÄHLENWENN, um Übereinstimmungen zu finden.

3. Was sind die besten Methoden, um Werte in Excel zu vergleichen? Die besten Methoden sind die Verwendung von bedingter Formatierung, Power Query oder VBA, je nach Komplexität der Daten und der gewünschten Analyse.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige