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

Mittelwert für Tickets pro Wochentag

Mittelwert für Tickets pro Wochentag
04.01.2023 15:54:37
ChakkaCor
Hallo zusammen,
ich habe glaube ich einen Denkfehler irgendwo kann ihn aber nicht finden.
Beispiel Datei: https://www.herber.de/bbs/user/157085.xlsm
Ich habe eine Liste an Datumsanzeigen. Manche Tage kommen mehrfach vor (Uhrzeit unterscheidet sich) und anderen gar nicht. (Tabelle Inbox Historie Spalte K)
Nun habe ich im Modul average das Skript middle_value:

Sub middle_value()
hist_count = Worksheets("Inbox Historie").Cells(Rows.Count, 11).End(xlUp).Row
a = Worksheets("Vorgaben").Cells(6, 2).Value
day_count = 0 'Anzahl Tage
day_sum = 0 'Anzahl Tickets
one_day = 0 'Tagwechsler (gleicher Wochentag)
For mont = 1 To 12 'Monatslauf
For dayz = 1 To 5 'Wochentagslauf
If day_sum  0 Then
Worksheets(a).Cells(mont + 19, dayz + 1).Value = day_sum / day_count 'in die Tabelle eintragen
'Auf null setzen
day_count = 0
day_sum = 0
one_day = 0
End If
For tickets = 2 To hist_count 'Historie durchgehen
If dayz = Weekday(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11), vbMonday) And mont = Month(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11)) Then
'If one_day = 0 Then one_day = Day(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11))
If Day(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11))  one_day Then
one_day = Day(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11))
day_count = day_count + 1
Debug.Print day_sum & "/" & one_day & "/" & mont & "/" & day_count
End If
'Debug.Print day_sum & "/" & one_day & "/" & mont & "/" & day_count
day_sum = day_sum + 1
End If
Next
Next
Next
End Sub
Die Mittelwerte für den Monat sollen dann in die Tabelle Monatsübersicht ab Zeile B20 eingetragen werden. Soll heißen wenn ein Monat 4 Montage hat und die Einträge sich in 15, 5, 5, 15 aufteilen, dann ist der Mittelwert 10.
Dies soll für jeden Monat und jeden Wochentag möglich sein.
Leider habe och nur Beispieldaten vom November und Dezember 2022. Sollte aber reichen zum Testen.
Beim Debug Print sehe ich, dass der erste Wochentag des Monats nicht richtig gezählt wird und zumindest ein Tag doppelt genommen wird. Außerdem wird kein Mittelwert für Montag im November gebildet.
Ich hoffe ich habe nichts vergessen. Ich brüte schon eine Weile darüber und habe keine weiteren Ideen.
Bitte um Hilfe und schon einmal vielen Dank.
Gruß
ChakkaCor

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittelwert für Tickets pro Wochentag
04.01.2023 16:02:28
onur
Wieso keine Formel?
Übrigens: Mittelwert heisst auf englisch "Average" und nicht "Middle Value"
AW: Mittelwert für Tickets pro Wochentag
04.01.2023 16:08:32
ChakkaCor
Hallo onur,
vielen Dank. Ich weiß das... ;) hatte aber schon ein Sub average.
Warum keine Formel.
Ich habe schon per Formel herausgefunden wie viele Montage usw. im Monat vorhanden sind. Da aber nicht alle Tage auch in der Liste vertreten sind verfälscht es mir ggf. den Mittelwert. Ich kann also mit der generellen Anzahl nichts anfangen. Wenn allerdings dazu Ideen bestehen, bin ich offen dafür...
AW: Mittelwert für Tickets pro Wochentag
04.01.2023 16:10:18
onur
Wie soll ich denn Ideen haben, ohne die Datei zu haben ?
AW: Mittelwert für Tickets pro Wochentag
04.01.2023 16:47:51
onur
Sorry, hatte ich übersehen.
AW: Mittelwert für Tickets pro Wochentag
04.01.2023 17:04:14
onur
Und wovon genau brauchst du den Durchschnitt?
Von "SLA break", "Tickets with SLA", "SLA ok", "Ticketcount (kumuliert)" oder "Differenz from day before" ?
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 07:34:13
ChakkaCor
Wie beschrieben, müssen die Wochentage jeweils aus der Liste ausgelesen uns summiert werden. Also alle Einträge vom 07.,14., 21. und 28. im November 22 zum Beispiel müssen summiert werden und dann durch die Anzahl der Tage gerechnet werden. Ich möchte wissen, wie viele Fälle im Durchschnitt an den Wochentagen im Monat reinkamen um dann später Jahre vergleichen zu können. Dafür muss die Spalte Date Opened zu rate gezogen werden...
Anzeige
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 11:46:46
onur
Als würde man mit der Wand sprechen....
ICH WEISS, WAS EIN DURCHSCHNITT IST, brauchst also nicht nochmal alles zu wiederholen. aber die FRAGE LAUTETE:
Der Durchschnitt der Werte WELCHER Spalte ?
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 11:58:59
ChakkaCor
Verzeihung, ich wollte dich nicht für blöd verkaufen. Ich habe es nur so erklärt, weil es wie beschrieben um die Spalte Opened Date geht
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 12:06:58
onur
1) Es gibt keine Spalte "Opened Date" , höchstens eine Spalte mit "Datum"
2) Selbst wenn es sowas gäbe: Willst du denn wirklich ernsthaft den Durchschnitt der Datumswerte ?
(1.1.2023 + 2.1.2023 )72 ergibt den 1,5ten Januar ?
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 13:03:37
ChakkaCor
Oh, es ist Date Opened (Spalte K)
Nein nicht den Durchschnitt der Datumswerte sondern:
Je Wochentag die Anzahl der Einträge (nach Date Opened) durch die Anzahl der enthaltenen Wochentage. Wie in den Beispiel zuvor genannt:
Im November 22 gibt es 4 Montage. Für diese 4 Montage sind aber nur 3 Montage in der Liste (Mehrfach) zu finden. Also wird die Anzahl der Einträge, die an einem Montag im November reingekommen sind durch 3 drei gerechnet und ich habe den gewünschten Mittelwert...
In meinem Kopf ist es klar, wie es sein soll. Ich weiß nur nicht, ob ich es richtig erkläre...
Anzeige
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 13:10:14
onur
Ich habe, ehrlich gesagt, langsam keine Lust mehr auf Diskussionen auf Sonderschulniveau.
Ein letztes mal:
"Also wird die Anzahl der Einträge..." Was für Einträge in WELCHER Spalte denn ?
Mach doch endlich mal ein konkretes Beispiel, wie du es, Schritt für Schritt, zu Fuss errechnen würdest (anhand der Werte in deiner geposteten Datei).
Ich werde die Frage nicht noch ein viertes mal stellen.
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 13:34:28
ChakkaCor
Hier nun ein konkretes händisches Beispiel anhand November 22
- ich gehe in die Tabelle Inbox Historie Spalte K
- Ich Nehme mir jeden Montag (oder auch einen anderen Wochentag) - in diesem Beispiel sind es 17.,14., 21. und 28.11.22 (Montage)
- Für jeden dieser Tage schaue ich, ob und wie viele Einträge existieren - hier sind es 5, 19, 29 und 22
- draus bilde ich die Summe und dividiere diese durch die Anzahl der auffindbaren Montage - in diesem Fall 4 - Das macht 75/4
- daraus ergeben sich 18,75 Ticket je Montag im Monat November 22 im Durchschnitt
Wie zuvor geschrieben sind die Werte Anzahl Wochentage und Anzahl Einträge aber dynamisch, da nicht unbedingt zu jedem Wochentag Werte existieren. Daher müssen beide Werte ermittelt werden und können nicht fix verwendet werden. (Zumindest nach meiner Logik)
Hilft dies nun?
Anzeige
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 13:37:23
ChakkaCor
Achso, die 18,75 müssen dann noch in das entsprechende Felde der Tabelle Monatsübersicht ab Spalte B20 eingetragen werden - in diesem Fall B30
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 14:19:51
onur
Spalte K enthält keine wirklichen Datumswerte - das ist nur TEXT, das aussieht wie Datumswerte. Kann man da eine Hilfsspalte (oder mehrere) einfügen?
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 14:00:20
onur
1) Du hast in keinem deiner Beiträge das Blatt " Inbox Historie" erwähnt - oder?
2) Ich komme auf 34,19,29,22 - der 17.11. ist KEIN Montag!
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 15:25:34
ChakkaCor
Ich würde gerne von Hilfstabellen absehen, weil es später ggf zu Problemen führen könnte bei anderen Dingen.
Und ja du hast recht. Sollte der 7. sein.
Mein Code an sich funktioniert, zieht aber immer für den ersten Wochentag jeweils 0.
Und das verstehe ich nicht...
Anzeige
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 15:26:56
onur
Ich hab dir doch schon die Lösung (gerade eben) gepostet.
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 15:56:12
ChakkaCor
Sehr interessante Lösung. Ich schau mal, ob ich damit arbeiten kann.
Aber was stimmt bei meinem Code nicht?
AW: Mittelwert für Tickets pro Wochentag
05.01.2023 16:00:32
onur
Keine Ahnung. 1) Ich habe keinen Code in der Datei gefunden 2)Du hast Excel365, was sehr mächtige Funktionen hat.
AW: Mittelwert für Tickets pro Wochentag
06.01.2023 09:16:53
ChakkaCor
Der Code ist wie schon oben geschrieben im Modul average im Sub middle_value.
Habe es jetzt aber doch hinbekommen:

Application.ScreenUpdating = False
hist_count = Worksheets("Inbox Historie").Cells(Rows.Count, 11).End(xlUp).Row 'Gesamtanzahl der Einträge ermitteln
a = Worksheets("Vorgaben").Cells(6, 2).Value 'Name des Tabellblattes zum Mittelwerte hinterlegen
day_count = 0 'Anzahl Tage Zähler
day_sum = 0 'Anzahl Einträge Zähler
one_day = 0 'Vergleichparameter für Tageswechsel (Montag auf einen neuen Montag im Monat z.Bsp.
check = "" 'Prüfparameter, damit Tage nicht doppelt gezählt werden.
For mont = 1 To 12 'Monate durchgehen
For dayz = 1 To 5 'Wochentage durchgehen
For tickets = 2 To hist_count 'Einträge durchgehen
'Wenn Monat und Wochenag passen
If dayz = Weekday(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11), vbMonday) And mont = Month(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11)) Then
'Dann prüfen, ob noch kein Tag gezählt wurde um die ersten Daten festzusetzen für den Wochentag im Monat
If one_day = 0 Then
one_day = Day(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11)) 'Tag zu Vergleich, wann der Tag wechselt
day_count = day_count + 1 'den ersten Tag zählen
check = one_day & "/" 'Doppeltagprüfer füllen
'Debug.Print day_sum & "/" & one_day & "/" & mont & "/" & day_count
End If
If Day(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11))  one_day Then
one_day = Day(Worksheets(Worksheets("Vorgaben").Cells(5, 2).Value).Cells(tickets, 11))
If InStr(1, check, one_day) = False Then 'verhindern, dass ein Tag doppelt gezählt wird
day_count = day_count + 1
check = check & one_day & "/" 'Doppeltagprüfer weiter füllen
End If
End If
day_sum = day_sum + 1 'Eintragsanzahl hochzählen
End If
If tickets = hist_count Then 'Wenn das Ender erreicht ist, dann
If day_sum  0 Then
'Debug.Print day_sum & "/" & day_count
Worksheets(a).Cells(mont + 19, dayz + 1) = day_sum / day_count 'Mittelwert errechnen und eintragen
'Zähler und Prüfer auf 0/leer setzen
day_count = 0
day_sum = 0
one_day = 0
check = ""
End If
End If
Next
Next
Next
Application.ScreenUpdating = True

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige