Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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

Zählenwenn - Fehler/wieso

Zählenwenn - Fehler/wieso
12.05.2022 15:40:12
Siegie
Meine lieben Wissenden,
ich stehe wieder einmal vor einem Rätsel und kann nicht sagen warum bzw. was habe ich FALSCH gemacht/gedacht.
In der Spalte "D" steht ein Gültigkeitsdatum, bei allen Jahren funktioniert es außer 2022. In "J3" gebe ich das gesuchte Jahr ein, in "J5" sehe ich dann über

=ZÄHLENWENN(D6:D3990;("*"&J3&"*")) 
wie viele Datensätze mit diesem Jahr vorhanden sind und in der Spalte "J6:J7000" wird über

=WENN(ISTZAHL(FINDEN($J$3;D537;1));1;0)
die 1 oder 0 gesetzt. Somit kann ich über "J5" und der Filterauswahl mir alle mit 1 auflisten.
Nur bei der Jahreszahl 2022 greift weder ZÄHLENWENN als auch in der Spalte das 1 oder 0. ich finde die Ursache dafür nicht.
Muss dazu aber anmerken, das ca. 15 Datensätze aus 2022 eingefügt wurden, eventuell liegt da der Fehler begraben.
LG Siegfried
MUSTER habe ich angehängt
https://www.herber.de/bbs/user/153030.zip

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zählenwenn - Fehler/wieso
12.05.2022 15:49:10
SF
Hola,
deine "Datumswerte" liegen als TEXT vor, von daher klappt das Suchen nach J3 auch, weil du TEXT suchst. Deine 15 Datumswerte aus 2022 sind echte Zahlen, die findet deine Formel nicht.
Wenn es alles Zahlen wären, würde man das so abfragen:

=SUMMENPRODUKT((JAHR(D6:D3990)=J3)*1)
Gruß,
steve1da
AW: Zählenwenn - Fehler/wieso
12.05.2022 23:03:22
Siegie
Hallo steve1da,
DANKE für deine Rückmeldung, ich befürchtete das dies die Ursache sein könnte/kann. Habe gekämpft um alle Zeilen in der Spalte "D" auf Zahl zu ändern bzw. dann wieder in das Datumsformat zu bringen, denn es sind insgesamt etwas über 6.700 Datensätze. Mein Problem ist, diese Daten bekomme ich als PDF-Datei, welche ich dann in Excel importiere, und da dürfte der Unterschied bei der Zuordnung der Spalte "D" aufgetreten sein.
Aber jetzt, dank deiner Hilfe funktioniert es.
DANKE & LG Siegfried
Anzeige
wenn fertig, dann nich weiter offen..owT
13.05.2022 06:16:41
Oberschlumpf
AW: wenn fertig, dann nich weiter offen..owT
13.05.2022 09:49:22
Siegie
Ja mein lieber Oberschlumpf, ich spürte es das noch nicht so ist wie es sein sollte. Siehe Bilder!
Mit meiner Formel in Spalte "K" stimmt leider noch was nicht, Datensatz ist auch im Muster vorhanden. Gebe ich "Debra" ein, wird mir in "K5" = 1 angezeigt, jedoch in Spalte "K" keine 1 vergeben, daher Auswahl der gefilterten Zeilen nicht möglich.
Das ganze in "DEBRA" geschrieben funktioniert es, ist mir daher so wie es jetzt ist nicht verlässlich genug, verstehe es aber nicht wie und was ich ändern müsste das die Formel in Spalte "K" auch mit "Debra" funktioniert.
Ich hoffe es kann mir wer da weiter helfen, LG Siegfried
Userbild
Userbild
Anzeige
AW: wenn fertig, dann nich weiter offen..owT
13.05.2022 16:48:12
Siegie
Nun Oberschlumpf, hat mich im letzten Beitrag gerügt, da ich den Thread noch OFFEN habe lassen, obwohl er der Meinung sein dürfte es wäre ja eh alles beantwortet.
Ich möchte also hier nun meine letzte Anfrage wiederholen da ich bis dato leider keinen Lösungsvorschlag oder Ursachenerklärung dazu erhalten habe.
“Mit meiner Formel in Spalte "K" stimmt leider noch was nicht, Datensatz ist auch im Muster vorhanden. Gebe ich "Debra" ein, wird mir in "K5" = 1 angezeigt, jedoch in Spalte "K" keine 1 vergeben, daher Auswahl der gefilterten Zeilen nicht möglich.
Das Ganze in "DEBRA" geschrieben funktioniert es, ist mir daher so wie es jetzt ist nicht verlässlich genug, verstehe es aber nicht wie und was ich ändern müsste das die Formel in Spalte "K" auch mit "Debra" funktioniert.
Ich hoffe es kann mir wer da weiterhelfen, LG Siegfried“
Habe eben nochmals was getestet und zwar in der Suchspalte „K3“ das Suchwort "ebra" eingegeben wozu die Datensätze (in meiner großen Datei) 676, 6288, 6441 und 6442 gefunden wurden.
Mit der gleiche Suche aber so geschrieben "EBRA" wurden die Datensätze in der Spalte „K“ mit 1 bewertet, 227, 568 und 5706!!!
Während in beiden Fällen in der Zeile „K5“ Auswertung der Formel

=ZÄHLENWENN(B6:B7000;("*"&K3&"*"))
der Wert 7 (sieben) angezeigt wird.
Also jetzt stehe ich total daneben?
Anzeige
AW: wenn fertig, dann nich weiter offen..owT
13.05.2022 17:25:10
Siegie
Nun ich vermute die Ursache dafür gefunden zu haben, in dem ich die Funktion FINDEN durch SUCHEN ersetzte, jetzt kommen bei der Filterauswahl auch 7 so wie bei der Anzeige in Spalte "K5" heraus.
Ich hoffe ich liege da richtig?
LG Siegfried
AW: der Syntax der beiden Funktionen ...
14.05.2022 17:33:27
neopa
Hallo Siegfried,
... gibt Aufklärung. Die Funktion SUCHEN() wird nicht zwischen Groß- und Kleinschreibung unterschieden dagegen bei FINDEN() schon.
Deine Formel in K6 kann zudem verkürzt werden zu =ISTZAHL(SUCHEN($K$3;B6;1))*1 analog in L6.
Gruß Werner
.. , - ...
AW: der Syntax der beiden Funktionen ...
14.05.2022 19:38:20
Siegie
Hallo Werner, DANKE für den Formelhinweis, ist doch gleich weniger geschriebenes.
Nun bastle ich noch an folgendem herum und finde leider keine Lösung dafür.
Wenn ich z.B. in "J3" das Jahr 2022 eingebe wird mir in ZL "J5" angezeigt wie viele Zeilen das Jahr 2022 enthalten, welche ja dann auch die Zahl 1 enthalten.
Wie ist/wäre es möglich in der Filterauswahl alle die 0 enthalten, auszublenden, also das Häkchen von null weg zu nehmen?
Von Hand aus kann ich es machen, ich möchte aber das dies autom. erfolgt sobald das Ergebnis kleiner als die Datensatzanzahl ist, so dass bei einem eventuellem drucken der Auswertung eben nur noch die zutreffenden Zeilen geduckt werden.
DANKE für einen Lösungsansatz, LG Siegfried
Anzeige
AW: für das was Du nun anstrebst ...
14.05.2022 20:04:56
neopa
Hallo Siegfried,
... bräuchtest Du an sich ein kleines VBA-Makro. Mit VBA beschäftige ich mich nicht (habe Deine Datei auch nur ohne evtl. bereits vorh. VBA-Code nur als XLSX-Datei aktiviert) Wenn Du aber dafür VBA einsetzen willst, dann bräuchte es auch Deiner Hilfsspalte(n) nicht.
Dies braucht es auch für die Filterung der Jahresdaten. Wenn Du aber schon mit der Hilfsspalte in J arbeiten willst, dann kannst Du die dortigen Formel noch vereinfachen. In J6: =(JAHR(D6*1)=J$3)*1 und nach unten kopieren reicht. Wenn in Spalte D echte Exceldatumswerte stehen reicht auch
=(JAHR(D6)=J$3)*1 und in J5 einfach: =SUMME(J6:J9999).
Die "händische" Filterung der Daten bedarf mit dieser vorhandenen Hilfsspalte lediglich 3 Mausklicks.
Gruß Werner
.. , - ...
Anzeige
AW: für das was Du nun anstrebst ...
14.05.2022 23:14:21
Siegie
DANKE Werner, wieder was dazugelernt, LG Siegfried
AW: für das was Du nun anstrebst ...
15.05.2022 12:15:10
Siegie
Wertes Forum der Wissenden!
Habe nun so ziemlich alle Ratschläge eingebaut, gefällt mir wie es jetzt läuft.
Meinen Wunsch nach eingeben eines Such-Begriffes gleich den Filter zu aktivieren und daher die Auswertung sofort drucken zu können ist mit auch gelungen.
Kann/bin mir sicher, dass meine Lösung noch eleganter umgesetzt werden könnte.
in Tabelle1

Private Sub Worksheet_Change(ByVal Target As Range)
Dim nRow As Variant
nRow = ActiveSheet.Cells(65536, 2).End(xlUp).Row - 5
If Target.Address = "$J$3" Then
'    MsgBox "Der Wert in Zelle J3 ( Jahr)  wurde geändert."
ActiveSheet.Range("$A5:$L" & nRow).AutoFilter Field:=10, Criteria1:="1"
End If
If Target.Address = "$K$3" Then
'    MsgBox "Der Wert in Zelle K3 ( Text-Suche)  wurde geändert."
ActiveSheet.Range("$A5:$L" & nRow).AutoFilter Field:=11, Criteria1:="1"
End If
If Target.Address = "$L$3" Then
'    MsgBox "Der Wert in Zelle L3 ( Text-Suche)  wurde geändert."
ActiveSheet.Range("$A5:$L" & nRow).AutoFilter Field:=12, Criteria1:="1"
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub

Sub Suche_Loeschen()
Dim nRow, LOE As Variant
LOE = False
nRow = ActiveSheet.Cells(65536, 10).End(xlUp).Row - 5
If nRow > Range("J5") Then
Range("J5").Select
ActiveSheet.Range("$A5:$L" & nRow).AutoFilter Field:=10, Criteria1:="1"
LOE = True
End If
If nRow > Range("K5") Then
Range("K5").Select
ActiveSheet.Range("$A5:$L" & nRow).AutoFilter Field:=11, Criteria1:="1"
LOE = True
End If
If nRow > Range("L5") Then
Range("L5").Select
ActiveSheet.Range("$A5:$L" & nRow).AutoFilter Field:=12, Criteria1:="1"
LOE = True
End If
If LOE Then Call checkFilter
End Sub
Sub checkFilter()
Dim objFilter As Filter
With ActiveSheet
If .AutoFilterMode Then
For Each objFilter In .AutoFilter.Filters
If objFilter.On Then
'          MsgBox "Filter ist an!"
Range("J3:L3").Select
Selection.ClearContents
ActiveSheet.ShowAllData
Exit For
End If
Next
End If
End With
End Sub
Ja und wenn ein Filter bereits aktiv ist, diesen über das Button "Suche löschen" wieder aufheben um so eine neue Suche eingeben zu können.
LG Siegfried
Musterdatei ist angehängt:
https://www.herber.de/bbs/user/153079.zip
Anzeige
AW: für das was Du nun anstrebst ...
16.05.2022 10:13:33
ChrisL
Hi Siegfried
Sicherlich könnte man noch etwas herumwerkeln, aber der Code ist überschaubar, zweckmässig und funktioniert. Insgesamt ist der Code ziemlich OK, weshalb ich nicht mehr viel Zeit investieren würde.
Zwei allgemeine Tipps hätte ich doch noch:
1. Select/Activate verhindern z.B.

Range("J3:L3").Select
Selection.ClearContents
besser:

Range("J3:L3").ClearContents
https://www.herber.de/vbabasics/0009.html
2. Deklarationen und Datentypen
Typ Variant funktioniert zwar auch, aber ein bewusster Umgang mit Datentypen scheint mir für eine saubere Programmierung sinnvoll.

Dim nRow, LOE As Variant
besser:

Dim nRow As Long, LOE As Boolean
https://www.herber.de/mailing/vb/html/vagrpdatatype.htm
cu
Chris
Anzeige
AW: für das was Du nun anstrebst ...
17.05.2022 13:03:19
Siegie
Hallo ChrisL,
DANKE für deine Rückmeldung. Ich werde mich bemühen, die Variablen Einstufung in Zukunft besser zu beachten, nur oft weiß ich nicht, wo die hineinfällt/hingehört und nehme dann eben „Variant“, hat bis jetzt immer funktioniert, wenn's auch vom Speicherbedarf (dein Hinweislink) gerade nicht günstig ist.
Das mit dem „Select“ weglassen, die Macht der Gewohnheit spielt da halt viel mit. Hatte vor Jahren mich mit dBase und Clipper beschäftigt, da schlagen halt alte Gewohnheiten durch.
Ich werde aber auch hier in Zukunft mich bemühen es, wo es geht, weg zu lassen.
LG Siegfried
Anzeige
AW: bitteschön owT
15.05.2022 14:52:26
neopa
Gruß Werner
.. , - ...
AW: bitteschön owT
15.05.2022 20:08:29
Siegie
Hallo Werner,
hast du bitte auch auf den VBA-Code geschaut ob man da nicht doch noch was verbessern könnte oder passt es so?
LG Siegfried
AW: sorry, mit VBA beschäftige ich mich nicht owT
15.05.2022 20:16:28
neopa
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige