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.

Wenn Pause kleiner 30 Sek dann Summe
#1
Hallo Excel Experten,

ich benötige mal wieder ein wenig Hilfe.
Da ihr mir schon mal so schön geholfen habt mein Problem zu lösen bin ich guter Dinge dass es jetzt auch wieder eine Lösung für mein Problem gibt.

Ich möchte in meine Tabelle die Summe der Dauer Berechnen wenn die Pause kleiner 10 Sekunden beträgt. Um das ganze ein wenig zu verdeutlichen habe ich ein Beispiel angehängt:

   

Es werden Ereignisse automatisch aufgelistet. (Bei der Auflistung und Sortierung wurde mir hier ja schon wunderbar geholfen. Siehe http://www.clever-excel-forum.de/Thread-...ne-Spalten)


Da die Anzahl der Einträge teilweise ziemlich hoch ist möchte ich nun eine weitere automatische Berechnung einfügen um die Auswertung zu perfektionieren.

In der Spalte "G" soll wie im Beispiel gezeigt die Gesamtdauer von allen Ereignissen, welche weniger wie 30 Sekunden auseinander liegen, berechnet werden. Das ganze sollte natürlich auch noch funktionieren wenn es mehrere solcher Einträge in der Auflistung gibt. Wenn man den Bereich, dann noch automatisch markieren könnte wäre es perfekt.

Hat da jemand eine Idee zu?

Viele Grüße,
Reismann
Antworten Top
#2
Hallo Reismann,

stell bitte einen Tabellenausschnit (kein Bild) oder eine Beispielmappe ein, dann kann Dir sicher geholfen werden.

Möchtest Du eine Formellösung oder kann VBA eingestzt werden?
Gruß Atilla
Antworten Top
#3
Den Anhang hatte ich natürlich vergessen.... Asche auf mein Haupt  Blush Beispieldatei hängt jetzt an.

.xlsm   Auswertung.xlsm (Größe: 48,17 KB / Downloads: 9)

Ob das ganze mit Formel oder VBA gelöst wird ist mir egal. Formel wäre mir lieber, muss aber nicht.

Edit: In der Mappe existieren die Spalten, in der das ganze funktionieren soll 7 mal. Für jeden Wochentag eine Gruppe von Spalten. Denke das ist aber ersichtlich wenn man die Mappe öffnet. Habe ja für den ersten Tag schon ein Beispiel mit drin.

Vielen Dank schon mal vorab!
Antworten Top
#4
Hallo Reisman,


für mich sind Deine Angaben nicht schlüssig.Einmal schreibst Du kleiner als 30 Sekunden dann wieder kleiner als 10 Sekunden.

Wenn ich kleiner als 30 Sekunden heranziehe verstehe ich die Markierung in Deinem eingestellten Bild nicht.
Denn nach meinem Verständnis erhalte ich andere Bereiche und Summen.

Schau mal:

Arbeitsblatt mit dem Namen 'Wochenübersicht'
 BCDEFGH
2DatumStartEndeDauerPause Summe
304.01.201612:57:5312:58:1500:00:22  00:18:38
404.01.201612:59:0512:59:1300:00:0800:00:50  
504.01.201613:19:5213:20:0900:00:1700:20:39  
604.01.201613:20:1813:26:3200:06:1400:00:09  
704.01.201613:26:4013:28:0000:01:2000:00:08  
804.01.201613:28:2713:31:0200:02:3500:00:2700:10:2600:10:09
904.01.201613:33:0113:34:3400:01:3300:01:59  
1004.01.201613:56:2313:56:2700:00:0400:21:49  
1104.01.201616:25:4916:26:2400:00:3502:29:22  
1204.01.201616:27:3916:27:4100:00:0200:01:15  
1304.01.201616:37:5016:39:4000:01:5000:10:09  
1404.01.201616:39:5616:39:5800:00:0200:00:16  
1504.01.201616:40:1016:40:3500:00:2500:00:1200:00:27 
1604.01.201617:48:0617:48:1300:00:0701:07:31  
1704.01.201617:48:2217:48:4800:00:2600:00:0900:00:26 
1804.01.201618:18:1818:19:0600:00:4800:29:30  
1904.01.201618:20:2818:21:1300:00:4500:01:22  
2004.01.201618:29:3318:29:5800:00:2500:08:20  
2104.01.201618:30:2218:30:4400:00:2200:00:2400:00:22 
2204.01.201618:52:1618:52:2800:00:1200:21:32  
2304.01.201620:47:3420:47:3700:00:0301:55:06  
2404.01.201620:47:4920:47:5000:00:0100:00:1200:00:01 
2504.01.201621:58:4021:58:4200:00:0201:10:50  
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Kannst Du noch einmal anhand eines Beispiels genau beschreiben was Du erwartest.
Ist der Einsatz von VBA möglich?
Gruß Atilla
Antworten Top
#5
Hallo Atilla,

Da habe ich leider ein paar Zahlen in den Posts durcheinander geworfen. Im Prinzip hast du es in der von dir geposteten Tabelle aber richtig erfasst. 
Ich versuche es noch mal anhand deines Posts zu erläutern:

F6= Pause zwischen Eintrag in Zeile 5 und 6
gleiches gilt für F7 und F8 im Bezug auf Zeile 6/7 und Zeile 7/8

Da die Pausen kleiner 30 Sekunden sind soll die Dauer von den vier Einträgen (E5 bis E8) addiert werden und wenn möglich irgendwie farblich gruppiert werden damit man eine Übersicht hat. Die Summe soll dann wie bei dir im Beispiel neben dem letzten Eintrag erscheinen. (G8 in deinem Beispiel)

In der Zelle H3 berechne ich mir nur die Gesamtsumme der Spalte E. Dort muss sonst nichts berechnet werden. Wenn das, was ich in der folgenden Tabelle manuell mache automatisiert funktionieren würde, wäre mein Ziel im Prinzip erreicht.

Wochenübersicht

ABCDEFGHI
1Montag
2DatumStartEndeDauerPauseSumme
304.01.201612:57:5312:58:1500:00:2200:18:38
404.01.201612:59:0512:59:1300:00:0800:00:50
504.01.201613:19:5213:20:0900:00:1700:20:39
604.01.201613:20:1813:26:3200:06:1400:00:09
704.01.201613:26:4013:28:0000:01:2000:00:08
804.01.201613:28:2713:31:0200:02:3500:00:2700:10:26
904.01.201613:33:0113:34:3400:01:3300:01:59
1004.01.201613:56:2313:56:2700:00:0400:21:49
1104.01.201616:25:4916:26:2400:00:3502:29:22
1204.01.201616:27:3916:27:4100:00:0200:01:15
1304.01.201616:37:5016:39:4000:01:5000:10:09
1404.01.201616:39:5616:39:5800:00:0200:00:16
1504.01.201616:40:1016:40:3500:00:2500:00:1200:02:17
1604.01.201617:48:0617:48:1300:00:0701:07:31
1704.01.201617:48:2217:48:4800:00:2600:00:0900:00:33
1804.01.201618:18:1818:19:0600:00:4800:29:30
1904.01.201618:20:2818:21:1300:00:4500:01:22
2004.01.201618:29:3318:29:5800:00:2500:08:20
2104.01.201618:30:2218:30:4400:00:2200:00:2400:00:47
2204.01.201618:52:1618:52:2800:00:1200:21:32
2304.01.201620:47:3420:47:3700:00:0301:55:06
2404.01.201620:47:4920:47:5000:00:0100:00:1200:00:04
2504.01.201621:58:4021:58:4200:00:0201:10:50
Formeln der Tabelle
ZelleFormel
H3=SUMME(E3:E25)
F6=C6-D5
F7=C7-D6
F8=C8-D7
G8=SUMME(E5:E8)
G15=SUMME(E13:E15)
G17=SUMME(E16:E17)
G21=SUMME(E20:E21)
G24=SUMME(E23:E24)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Ich hoffe so ist es verständlicher. Sorry für die chaotische Beschreibung.

Einsatz von VBA ist möglich!
Antworten Top
#6
Sorry für den Doppelpost, aber hat keiner eine Idee wie ich das Problem lösen könnte?
Antworten Top
#7
Hallo Reismann,

Tut mir sehr leid, Dich hatte ich ganz aus den Augen verloren.
Von daher ist es sehr gut, dass Du den Beitrag noch einmal nach oben
geholt hast.

Ich kann Dir für heute Abend keine Lösung versprechen,
aber im Laufe des morgigen Vormitags müsste ich etwas vorzeigen können.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Reismann
Antworten Top
#8
Hallo Reismann,

ich habe da mal etwas zusammengebastelt.
Da die einzelnen Wochentage nicht gleich aufgebaut sind, habe ich es erst mal für den Montag aus Deiner eingestellten Datei angepasst.
Ich gehe mal davon aus, das in die anderen Wochentage noch Spalten hinzukommen. Wenn der Gesamtaufbau steht, dann kann der Code erweitert werden.

Unten stehenden Code bitte in einer Kopie Deiner Datei in das Codefenster der Tabelle mit den Wochentagen einfügen:


Code:
Option Explicit

Sub Teilsummen()
 Dim i As Long, j As Long
 Dim lngZ As Long
 lngZ = Cells(Rows.Count, 2).End(xlUp).Row
 Range(Cells(2, 5), Cells(lngZ, 6)).Interior.ColorIndex = xlNone
 i = 4
 Do
   If Cells(i, 6) < 1 / 86400 * 30 Then
     j = i
     Do While Cells(i + 1, 6) < 1 / 86400 * 30
       i = i + 1
     Loop
     Cells(i, 7) = Application.Sum(Range(Cells(j - 1, 5), Cells(i, 5)))
     Range(Cells(j - 1, 5), Cells(i, 5)).Interior.ColorIndex = 50
     Range(Cells(j, 6), Cells(i, 6)).Interior.ColorIndex = 6
     j = 0
   End If
   i = i + 1
 Loop While Cells(i, 6) <> ""
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Reismann
Antworten Top
#9
Hi Atilla,

Ich bin begeistert. Das ist schon fast Perfekt.
Wie du richtig vermutet hattes, soll die Auswertung für die restlichen Tage auch erfolgen. Die Spalten hätte ich auch direkt einfügen können um dir Arbeit zu ersparen. Kannst du mir erklären wie ich den Code auf die restlichen Tage erweitere? (Datei mit allen Spalten habe ich noch mal angehängt)

.xlsm   Auswertung.xlsm (Größe: 69,42 KB / Downloads: 4)

Ein kleines Problem mit dem Code ist mir aber schon aufgefallen. Wenn sich die Datensätze ändern und ich den Code erneut ausführe, ändern sich zwar die eingefärbten Bereiche, die "alten" Berechnungen der Summe verschwinden aber nicht. In der Tabelle findest du zwei von mir rot eingefärbte Zeiten, die aus der vorherigen Berechnung mit anderen Zeiten stammt. Kann man den Code so anpassen dass die Spalte ab Zelle 3 abwärts vor Berechnung geleert wird?

Vielen Dank auf jeden Fall für die wie immer vorbildliche Unterstützung hier im Forum. Ihr alle seid der Wahnsinn! Danke!
Antworten Top
#10
Hallo Reismann,

mit dem Löschen war mir auch schon aufgefallen.

Hier der erweiterte Code für alle Tage:


Code:
Option Explicit

Sub Teilsummen()
  Dim i As Long, j As Long, t As Long
  Dim lngZ As Long
  lngZ = Cells(Rows.Count, 2).End(xlUp).Row

  For t = 6 To 54 Step 8
    lngZ = Cells(Rows.Count, 2).End(xlUp).Row
    Range(Cells(2, t + 1), Cells(lngZ, t + 1)).ClearContents
    Range(Cells(2, t - 1), Cells(lngZ, t)).Interior.ColorIndex = xlNone
    i = 4
    j = 0
    Do
      If Cells(i, t) < 1 / 86400 * 30 Then
        j = i
        Do While (Cells(i + 1, t) < 1 / 86400 * 30) And (Cells(i + 1, t - 1) <> "")
          i = i + 1
        Loop
        Cells(i, t + 1) = Application.Sum(Range(Cells(j - 1, t - 1), Cells(i, t - 1)))
        Range(Cells(j - 1, t - 1), Cells(i, t - 1)).Interior.ColorIndex = 50
        Range(Cells(j, t), Cells(i, t)).Interior.ColorIndex = 6
        j = 0
      End If
      i = i + 1
    Loop While Cells(i, t) <> ""
  Next t
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Reismann
Antworten Top


Gehe zu:


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