AW: Zelleninhalt (differenziert) vergleichen?
17.04.2016 12:19:22
Daniel
Hi
wenn VBA eine Option ist, dann so:
1. schreibe folgenden Code in ein allgemeines Modul (Modul 1)
Function GemeinsameZellinhalte(Bereich As Range, TrennZeichen As String) As String
Dim dic As Object
Dim Ergebnis As String
Dim i
Dim TeilText
Dim txt As String
Dim Zelle As Range
Dim Anzahl As Long
Set dic = CreateObject("Scripting.dictionary")
For Each Zelle In Intersect(Bereich, Bereich.Worksheet.UsedRange)
txt = Zelle.Value
If txt "" Then
Anzahl = Anzahl + 1
'--- Trennzeichen vereinheitlichen
For i = 1 To Len(TrennZeichen)
txt = Replace(txt, Mid(TrennZeichen, i, 1), "|")
Next
'--- Direkt auf einander folgende Trennzeichen zusammen fassen
Do Until InStr(txt, "||") = 0
txt = Replace(txt, "||", "|")
Loop
'--- Text aufteilen und Vorkommen der Teiltexte zählen
For Each TeilText In Split(txt, "|")
dic(TeilText) = dic(TeilText) + 1
Next
End If
Next
'--- Teiltexte ermitteln, die in jeder Zelle vorkommen
For Each TeilText In dic.keys
If dic(TeilText) = Anzahl Then
Ergebnis = Ergebnis & "; " & TeilText
End If
Next
'--- Ergebnis ausgeben
If Ergebnis = "" Then
GemeinsameZellinhalte = "# keine Gemeinsamkeiten"
Else
GemeinsameZellinhalte = Mid(Ergebnis, 3)
End If
End Function
2. Schreibe dann in eine Zelle die Formel:
=GemeinsameZellinhalte(A1:A3;" ,;")
der erste Parameter sind die Zellen, die du vergleichen willst, im zweiten Parameter musst du die verwendeten Trennzeichen angeben, es dürfen auch mehrere sein.
Voraussetzung für ein korrektes Ergebnis ist, dass ein Teiltext in einer Zelle nur einmal vorkommt.
ohne VBA könntest du so vorgehen:
1. teile den Text mit DATEN - DATENTOOLS - TEXT IN SPALTEN auf.
wenns verschiedene Trennzeichen gibt (Komma, Semikolon, Leerzeichen), dann kannst du die alle angeben.
2. das Ergebnis kannst du dir dann mit einer etwas komplexeren Matrix-Formel ausgeben lassen, diese schaust du dir am besten in der Beispieldatei an (Matrixformel bedeutet, dass du die Eingabe immer mit STRG+SHIFT+ENTER abschließen musst.
wenn des reicht, die gleichen Texte farblich zu markieren, dann kannst du auch in der mit TEXT IN SPALTEN erzeuten Tabelle die Werte, die in allen Zeilen vorkommen, mit der Bedingten Formatierung mit folgender Formel als Regel markieren:
(A1:C3 sein der Zellbereich, der die Einzelwerte enthält):
=ZählenWenn($A$1:$C$3;A1)=Zeilen($A$1:$C$3)
Beispieldatei mit den Lösungsmöglichkeiten:
https://www.herber.de/bbs/user/105020.xlsm
Gruß Daniel