Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zählen, wenn Kriterium innerhalb eines Zeitraumes erfüllt ist
#1
Guten Morgen,

ich habe ein Problem, für das ich keinen passenden Eintrag finde, weil ich nicht mal weiß, wie man es richtig formuliert.

Ich habe eine Tabelle in der Testergebnisse vermerkt sind. Jeder Test ist in einer Zeile dargestellt, wobei es sowohl mehrere Test zu einer Person geben kann also auch mehrere Tests an einem Tag (siehe Besipieltabelle anbei).

Nun möchte ich Folgendes wissen: Wenn jemand ein positives Ergebnis hat, lag es innerhalb eines Drei-Tages-Zeitraumes ab dem frühesten Test zu dieser Person? In diesem Fall soll die Person gezählt werden. Das heißt bei der Beispieltabelle sollen nur Anton und Dora gezählt werden.

Hier stehe ich nun auf dem Schlauch. Hat jemand einen Hinweis für mich, welchen Ansatz man verfolgen könnte? Ich habe mich bereits an Pivot-Tabellen und Abfragen versucht, kenne beides aber nicht wirklich und bin mir nicht sicher, ob das der richtige Weg ist.

Ich erwarte natürlich keine komplette Lösung des Problems, aber freue mich über jedwede Tipps!

Vielen herzlichen Dank und schöne Grüße

Helgo


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 9,44 KB / Downloads: 23)
Antwortento top
#2
Sad 
Hallo zusammen,

vielen Dank an WillWissen für das Entfernen der Leezeilen.

Bislang gab es noch keine Antwort zu diesem Beitrag. Da das hier ja eine sehr rege und hilfsbereite Forumsgemsinschaft ist, frage ich mich, woran das liegt.

Habe ich das Problem zu schlecht beschreiben? Habe ich gegen geschriebene oder ungeschriebene Relegeln dieses Forums verstoßen? Oder ist das Problem einfach zu kompliziert?

Ich freue mich über Hinweise.

Liebe Grüße
Helgo
Antwortento top
#3
Hallo Helgo,

keine Sorge, du hast keine Regeln verletzt (das wäre dir sicherlich sehr zeitnah mitgeteilt worden Wink)

Ich fürchte, die fehlenden Lösungsvorschläge liegen darin begründet, dass die Helfer schlicht keine haben; ich schließe das u.a. daraus, dass deine Datei insgesamt 9x heruntergeladen worden ist.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Benutzer sagt Danke an WillWissen für diesen Beitrag:
  • helgo
Antwortento top
#4
Vielen Dank für die Antwort!

Ich hatte es befürchtet. Aber so weiß ich wenigstens, dass ich kein Brett vor dem Kopf habe.

Schöne Grüße
Helgo
Antwortento top
#5
10 x download der Datei und kein Antwort? Warum?

M.M.n ist es mit VBA lösbar, ob mit =Aggregat() kann ich nicht beruteilen.

Falls es eher wenige Daten wären, könnte VBA den Autofilter nutzen, ansonsten mit "Dictionary".

Frage:

- Wieviele Einträge gibt es in der Tabelle?
- wird immer nach Namen sortiert?

Geht es um Covid-19 Tests?
[-] Folgende(r) 1 Benutzer sagt Danke an Fennek für diesen Beitrag:
  • helgo
Antwortento top
#6
Vielen Dank für Deine Antwort, Fennek!

Die Tabelle ist mit ca. 45000 Zeilen eher umfangreich.

Die Frage mit der Namenssortierung verstehe ich nicht ganz. Die Liste ist im Urzustand nach Namen sortiert, aber ja beliebig umsortierbar. Am Ende sollen keine Namen ruaskommen sondern "nur" eine Anzahl.

Es geht nicht um Covid-19 Tests.
Antwortento top
#7
So:

Bei diesen geschachtelten "IF's" kann man sich leicht verheddern, der Code liefert die gewünschte "2", aber Du solltest ihn noch an anderen Beispielen austesten:

Code:
Sub F_en()
Dim Ar, DD As Object, Ret As Long

Set DD = CreateObject("Scripting.Dictionary")

Ar = Cells(1).CurrentRegion
For i = 2 To UBound(Ar)
    If IsDate(Ar(i - 1, 2)) Then
        If Ar(i, 2) < Ar(i - 1, 2) Then Debug.Print "Datum nicht soritert " & i
    End If
    
    If Ar(i, 4) <> vbNullString Then
        If Not DD.exists(Ar(i, 1)) Then
            DD.Item(Ar(i, 1)) = Ar(i, 2)
        End If
        
     Else
            If Not DD.exists(Ar(i, 1)) Then
                DD.Item(Ar(i, 1)) = "X"
                Ret = Ret + 1
            Else
                If (DD.Item(Ar(i, 1)) <> "X") And (Ar(i, 2) - DD.Item(Ar(i, 1)) < 4) Then Ret = Ret + 1
            End If
     End If

Next i

MsgBox Ret
Set DD = Nothing
End Sub

Versuche den Code zu verstehen / nach-zu-vollziehen.


Angehängte Dateien
.xlsm   Datum von Tests.xlsm (Größe: 16,12 KB / Downloads: 2)
[-] Folgende(r) 1 Benutzer sagt Danke an Fennek für diesen Beitrag:
  • helgo
Antwortento top
#8
Hallo Fennek,

da ich mich mit VBA nicht gut auskenne, kann ich leider nicht behaupten, dass ich in dem Skript alles nachvollziehen konnte. Ich werde mich aber weiter reinfuchsen.

Ich habe jetzt allerdings schon unterschiedlichste Konstellationen ausprobiert, und es funktioniert hervorragend!

TAUSEND DANK FÜR DEINE HILFE!
Antwortento top
#9
Hallo Helgo,

hier noch eine Formellösung mit einer Hilfsspalte.

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFG
1PersonDatumErgebnis pos.Ergebnis neg.HilfsspalteAnzahl
2Anton05.08.2020xAnton4
3Berta15.10.2020X
4Berta17.10.2020xXBerta
5Berta17.10.2020x
6Berta02.11.2020X
7Berta02.11.2020X
8Cäsar06.07.2020X
9Dora02.05.2020X
10Dora03.05.2020XDora
11Dora07.05.2020X

ZelleFormel
E2=WENNFEHLER(WENN(UND(B2-SVERWEIS(WENN(C2<>"";A2;"");$A$2:$B$14;2;0)<=3;ZÄHLENWENN($E$1:E1;A2)=0);A2;"");"")
G2=ZÄHLENWENN(E2:E14;"?*")
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

In der angehängten Beispieldatei ist zum besseren Verständnis der Formel in der Hilfsspalte diese Formel in die einzelnen Berechnungsschritte aufgedröselt (Spalten J-N)

Gruß
Fred


Angehängte Dateien
.xlsx   Zählen_wenn_Kriterium_innerhalb_Zeitraum_fs.xlsx (Größe: 14,31 KB / Downloads: 4)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste