Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

kommt ein Text mehrfach vor und ein anderer nicht

kommt ein Text mehrfach vor und ein anderer nicht
13.01.2017 12:05:11
Christian
Hallo an alle,
zuerst einmal ich benutze Office 2016, warum kann man das nicht auswählen?
Aber ich bitte um eure Hilfe.
Versuche folgendes in eine Formel zu packen.
Wenn der Text in B1 mehr als einmal in Spalte B vorkommt soll WAHR ausgegeben werden, es sei denn der Text in A1 steht irgendwo im Bereich F1:F20.
Hat da jemand eine Lösung für mich?
Vielen Dank
Christian

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kommt ein Text mehrfach vor und ein anderer nicht
13.01.2017 12:27:32
Max2
So ganz raff ich nicht was du willst, aber Probier das mal:
(Nicht getestet)
Dim strText As String
Dim rng, c As Range
Dim lngZeile, i As Long
Dim ws As Worksheet
i = 0
Set ws = ThisWorkbook.Sheets(1) 'Anpassen
With ws
lngZeile = .Range(.Rows.Count, 1).End(xlUp).Row
strText = .Cells(2, 2).Value
Set rng = .Range(.Cells(1, 2), .Cells(lngZeile, 1))
For Each c In rng
If c.Value = strText Then
i = i + 1
End If
Next c
If i > 0 Then .Cells(1, 3).Value = "WAHR"
End With 
Zählt wie viele Zellen in B den gleichen Wert wie B1 haben und schreibt dann falls > 0 in Zelle C1 WAHR
Anzeige
AW: kommt ein Text mehrfach vor und ein anderer nicht
13.01.2017 12:29:08
Max2
Oh und das:
	lngZeile = .Range(.Rows.Count, 1).End(xlUp).Row
strText = .Cells(2, 2).Value
Set rng = .Range(.Cells(1, 2), .Cells(lngZeile, 1))
In das ändern:
	lngZeile = .Range(.Rows.Count, 2).End(xlUp).Row
strText = .Cells(2, 2).Value
Set rng = .Range(.Cells(1, 2), .Cells(lngZeile, 2))

AW: kommt ein Text mehrfach vor und ein anderer nicht
13.01.2017 13:02:03
Christian
Hallo Max,
ich verstehe den Sinn deines Makros nicht,
da gabs wohl wirklich ein Riesen Missverständnis.
Wenn ich zähle, wie oft B1 in Spalte B vorkommt, kommt immer rein von der Logik her eine Zahl größer gleich 1 raus, also wird dein Makro immer WAHR ausgeben.
Auf jedenfall habe ich von Rudi ein passende Lösung erhalten.
Danke trozdem für deine Mühe
Christian
Anzeige
AW: kommt ein Text mehrfach vor und ein anderer nicht
13.01.2017 12:31:45
Rudi
Hallo,
=(zählenwenn(B:B;B1)&gt1)*(zählenwenn(F1:F20;B1)=0)
Gruß
Rudi
UND statt *
13.01.2017 12:49:47
Rudi
besser:
=UND(ZÄHLENWENN(B:B;B1)&gt1;ZÄHLENWENN(F1:F20;B1)=0)
AW: UND statt *
13.01.2017 12:58:22
Christian
gut mit UND funktioniert es auch und es gibt dann WAHR/FALSCH aus.
Tests waren jedenfalls erfolgreich
AW: WENN statt UND oder *
13.01.2017 13:19:12
Daniel
Hi
noch besser:
=Wenn(ZählenWenn(F1:F20;B1)=0;Wenn(ZählenWenn(B:B;B1)>1;Wahr;Falsch);Falsch)
warum ist das besser?
ZählenWenn sind Zeitaufwendige Funktionen. Wenn die Datenbereiche groß sind und diese Funktion mehrfach verwendet wird, können schnell spürbare Rechenzeiten zustande kommen, die das Arbeiten mit der Datei dann behindern.
bei UND(ZählenWenn()>0;ZählenWenn()=0) und bei (ZählenWenn()>0)*(ZählenWenn()=0) werden immer beide ZählenWenns berechnet.
Beim geschachtelten Wenn wird nur das erste ZählenWenn immer berechnet.
das zweite ZählenWenn wird nur dann berechnet, wenn die erste Prüfung ein WAHR ergeben hat und damit weniger oft.
Somit sollte das WENN weniger Rechenzeit verursachen als UND und *, auch wenn die Formel länger ist.
man sollte sich auch ein paar Gedanken darüber machen, welches ZählenWenn man an die erste Stelle nimmt.
Vorzugsweise das, welches weniger häufig WAHR wird, oder dasjenige, welches schneller berechnet werden kann.
das UND hat zusätzlich den Nachteil, dass es in Matrixfunktionen wie Summenprodukt oder bei Eingabe mit STRG+SHIFT+ENTER nicht verwendet werden kann.
aber wenn es keine Probleme mit der Rechenzeit gibt, spricht natürlich nichts gegen UND oder *
Gruß Daniel
Anzeige
AW: WENN statt UND oder *
13.01.2017 13:52:10
Christian
Hallo Daniel,
nein die Formel hat den Sinn, zu überprüfen ob B1 mehrfach in den ca. 10000 Zeilen vorkommt, das Ganze wird dann auch wie du vermutet hast bis in Zeile 10359 kopiert.
Von den mehr als 10000 Texten kommen 10 2mal vor, also nur ein sehr geringer Anteil.
Der Sinn des Ganzen ist nun zu überprüfen, weshalb er 2mal vorkommt, was ich händig ohne Formel mache.
Kommt er zurecht 2mal vor kopiere ich den Text von Spalte A nach Spalte F.
Der Sinn und Zweck ist, das wenn ich das irgendwann nochmal mache, anhand von Spalte F geschaut wird, was ich bereits irgendwann mal überprüft habe, damit ich mir keine doppelte Arbeit mache.
Das heißt, beide Zählenwenn Formeln beziehen sich zwar auf einen sehr großen Bereich, aber die Zellen in denen sie wahr ausgeben, beziehen sich auf einen sehr kleinen Bereich von max. 20.
Welche Reihenfolge da jetzt besser ist, überlasse ich dir.
Aber genau genommen, das ganze hat ja sowieso nur den Sinn einer Überprüfung, das mache ich vlt. einmal im Monat und lösche nach dem Überprüfen die Formel auch wieder da ich sie erst in der nächsten Überprüfung brauche, eben wegen der Rechenzeit. Das Berechnen dauert ca. 8 Sekunden, wegen 8 Sekunden im Monat brauchen wir uns keine Gedanken über Zeitoptimierung machen.
Gruß
Christian
Anzeige
AW: WENN statt UND oder *
13.01.2017 14:08:58
Daniel
Hi
worauf bezieht sich dein "nein"?
über den Sinn der Funktion habe ich mir keine Gedanken gemacht.
=Wenn(ZählenWenn(F1:F20;B1)=0;Wenn(ZählenWenn(B:B;B1)>1;Wahr;Falsch);Falsch)
hast das gleiche Ergebnis wie
=Und(ZählenWenn(B:B;B1)>1;ZählenWenn(F1:F20;B1)=0)
oder
=(ZählenWenn(B:B;B1)>1)*(ZählenWenn(F1:F20;B1)=0)
ist aber in der Abarbeitung etwas schneller (um vieviel, hängt vom Einzelfall ab)
Gruß Daniel
AW: WENN statt UND oder *
13.01.2017 14:41:23
Christian
So war das auch gemeint, wegen 8 Sekunden im Monat brauchen wir uns nicht den Kopf zu zerbrechen, welcher Einzelfall jetzt der passende ist.
Außerdem habe ich im Moment muss ich zugeben das Problem, dass ich in der Zwischenzeit bevor du geschrieben hast, mithilfe Rudis Formel dafür gesorgt habe, dass eure Formeln keine Fehler mehr finden, bzw. kein WAHR mehr ausgeben, das war ja auch der ursprüngliche Sinn des Ganzen, ich müsste jetzt für größere Tests die fehlerhafte Datei wieder nachbauen, damit deine Formel überhaupt etwas findet um WAHR auszugeben.
Gruß
Christian
Anzeige
AW: kommt ein Text mehrfach vor und ein anderer nicht
13.01.2017 12:54:12
Christian
Hallo Rudi,
vielen Dank, hab die Formel noch etwas angepasst, jetzt heißt sie
=(ZÄHLENWENN(B:B;B1)>1)*(ZÄHLENWENN(H$1:H$35;A1)=0)

da ichs in Spalte H kopiert hab und noch ein paar Texte zugefügt hab.
Aber vielen Dank.
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige