• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Totale waardes berekenen binnen een bepaald tijdsinterval

  • Onderwerp starter Onderwerp starter Rydr
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Rydr

Gebruiker
Lid geworden
8 jul 2015
Berichten
5
Ik heb een vraagje m.b.t. tot een rapport die ik wil draaien.
Het gaat om een overzicht waarin ik de totale productieuren per tijdseenheid wil berekenen.
Zo zijn er bijvoorbeeld twee producties in tijdsklasse 6:00 tot 6:30
-Productie 1`= 6:05- 6:20
- Productie 2 = 6:23 - 6:35
De totale productietijd tussen in die tijdsklasse moet dan 0:15 + (0:12-0:05) = 0:22 zijn.

In de bijlage staat een voorbeeld Excel bestand met data.

Schematisch uitgelegd wil ik het volgende;
Waarde K4 = SOM van "duur" waardes die voldoen binnen datum (5-jan) en tijdsklasse 6:00 - 6:30
Waarde= 0:10:00 (C3) + 0:05:00 (C2) = 0:15:00


Ik heb meerdere formules geprobeerd waaronder SOM.ALS maar het lukt me niet.

Alvast bedankt voor de hulp!:thumb:

Bekijk bijlage Werkverdeling Q1=Q2.xlsx
 
Hoi Rydr,
Hoe ga je om met tijdsintervallen die in meerdere tijdsklassen vallen, zoals bv. in rij 8?
Deel van 9:55 tot 10:00 uur in tijdsklasse 9:30-10:00 uur en deel van 10:00 tot 10:30 in tijdsklasse van 10:00-10:30 en deel van 10:30 tot 10:50 in tijdsklasse van 10:30-11:00?
Met vriendelijke groet,
Maarten
 
Hoi Rydr,
Hoe ga je om met tijdsintervallen die in meerdere tijdsklassen vallen, zoals bv. in rij 8?
Deel van 9:55 tot 10:00 uur in tijdsklasse 9:30-10:00 uur en deel van 10:00 tot 10:30 in tijdsklasse van 10:00-10:30 en deel van 10:30 tot 10:50 in tijdsklasse van 10:30-11:00?
Met vriendelijke groet,
Maarten

Maarten,
Bedankt voor je reactie.
Het klopt zoals jij dat schets.
Bij een productietijd van 10:50 tot 12:05 worden de volgende waardes bij het tijdsinterval totaal gevoegd;
- Tijdsinterval 10:30-11:00 10 minuten
- Tijdsinterval 11:00-11:30 30 minuten
- Tijdsinterval 11:30-12:00 30 minuten
- Tijdsinterval 12:00-12:30 5 minuten

Per productie (rij) worden er dus waardes bij een bepaald tijdinterval toegevoegd.

Hoop het zo iets duidelijker te hebben uitgelegd.
 
Ik heb ook maar even nagedacht voor je.
Het volgende werkt bij mij.

In cel J4 en doorkopiëren:
Code:
=somtijd($A2:$A973;$I4;J$2;J$3)
In module plaatsen:
Code:
Public Function SomTijd(rng As range, d As range, b As range, e As range) As Double

Dim c As range
SomTijd = 0

For Each c In rng
If (Application.WorksheetFunction.Min((c.Offset(, 1).Value - Int(c.Offset(, 1).Value)), e.Value) - Application.WorksheetFunction.Max((c.Value - Int(c.Value)), b.Value)) > 0 And Int(c.Value) = Int(d.Value) Then
SomTijd = SomTijd + (Application.WorksheetFunction.Min((c.Offset(, 1).Value - Int(c.Offset(, 1).Value)), e.Value) - Application.WorksheetFunction.Max((c.Value - Int(c.Value)), b.Value))
End If
Next c

End Function

Wellicht dat de VBA korter kan, maar dit is wat ik mee kan komen.

De UDF werkt als volgt:
SomTijd(bereik;datum;begin;eind)
je bereik is enkel de eerste kolom, in jouw geval kolom A
de datum is kolom I
het begin en eind zijn de bovenste twee cellen
Let ook op het vastzetten van kolommen of rijen.
 

Bijlagen

Laatst bewerkt:
Ik heb ook maar even nagedacht voor je.
Het volgende werkt bij mij.

In cel J4 en doorkopiëren:
Code:
=somtijd($A2:$A973;$I4;J$2;J$3)
In module plaatsen:
Code:
Public Function SomTijd(rng As range, d As range, b As range, e As range) As Double

Dim c As range
SomTijd = 0

For Each c In rng
If (Application.WorksheetFunction.Min((c.Offset(, 1).Value - Int(c.Offset(, 1).Value)), e.Value) - Application.WorksheetFunction.Max((c.Value - Int(c.Value)), b.Value)) > 0 And Int(c.Value) = Int(d.Value) Then
SomTijd = SomTijd + (Application.WorksheetFunction.Min((c.Offset(, 1).Value - Int(c.Offset(, 1).Value)), e.Value) - Application.WorksheetFunction.Max((c.Value - Int(c.Value)), b.Value))
End If
Next c

End Function

Wellicht dat de VBA korter kan, maar dit is wat ik mee kan komen.

De UDF werkt als volgt:
SomTijd(bereik;datum;begin;eind)
je bereik is enkel de eerste kolom, in jouw geval kolom A
de datum is kolom I
het begin en eind zijn de bovenste twee cellen
Let ook op het vastzetten van kolommen of rijen.

NDam90,

Het werkt perfect!
Super bedankt en een virtueel applaus :thumb:

Had er nooit zo zelf opgekomen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan