• 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.

Formule vereenvoudigen

Status
Niet open voor verdere reacties.

Molovhic

Gebruiker
Lid geworden
27 mei 2016
Berichten
76
Hallo

Ik heb een formule die data gaat halen uit ons wms systeem.

Het komt er op neer dat aan de hand van de export file (uit het wms) we gaan berekenen hoeveel iemand eigenlijk presteert.
Vermits het systeem met kwartieren werkt, tellen we al de kwartieren waarin iemand een hit (gewerkt) heeft.

Nu is het probleem dat die formule toch vrij lang is waardoor de file een tijdje nodig heeft om te rekenen (ong. 2min).
Vroeg mij af of het eenvoudiger kan.

Formule zoals hij nu is:

IF(ISNUMBER(SEARCH("22",data!E$2,6)), = hier ga ik kijken welke shift gewerkt heeft (22 = nachtploeg, 06 = vroege, 14=late)
De formule gaat kijken of dit uur bestaat in de eerste cel.
SUM(IF(COUNTIFS(, = Hierna gaat hij aan de hand van enkele criteria's opzoeken hoeveel kwartieren
de persoon in A5 gewerkt heeft en dit delen door 4 vermits er 4 kwartieren per uur zijn.


Mijn vraag is dus of deze formule eventueel korter kan, rekening houdend dat hij wel moet controleren of er een hit
is in een bepaald kwartier?


=IF(ISNUMBER(SEARCH("22",data!E$2,6)),SUM(IF(COUNTIFS(data!$L$2:$L$20000,A5,data!$E$2:$E$20000,{"*22:15","*22:30","*22:45","*23:00","*23:15","*23:30","*23:45","*00:00","*00:15","*00:30","*00:45","*01:15","*01:30","*01:45","*02:00","*02:15","*02:30","*02:45","*03:00","*03:15","*03:30","*04:15","*04:30","*04:45","*05:00","*05:15","*05:30","*05:45","*06:00"},data!$P$2:$P$20000,"afdeling")>0,1,0))/4,IF(ISNUMBER(SEARCH("06",data!E$2,6)),SUM(IF(COUNTIFS(data!$L$2:$L$20000,A5,data!$E$2:$E$20000,{"*06:15","*06:30","*06:45","*07:00","*07:15","*07:30","*07:45","*08:00","*08:15","*08:30","*08:45","*09:00","*09:15","*09:30","*09:45","*10:00","*10:15","*10:30","*10:45","*11:00","*11:15","*11:30","*11:45","*12:00","*12:15","*12:30","*12:45","*13:00","*13:15","*13:30","*13:45","*14:00"},data!$P$2:$P$20000,"afdeling")>0,1,0))/4,IF(ISNUMBER(SEARCH("14",data!E$2,6)),SUM(IF(COUNTIFS(data!$L$2:$L$20000,A5,data!$E$2:$E$20000,{"*14:15","*14:30","*14:45","*15:00","*15:15","*15:30","*15:45","*16:00","*16:15","*16:30","*16:45","*17:00","*17:15","*17:30","*17:45","*18:00","*18:15","*18:30","*18:45","*19:00","*19:15","*19:30","*19:45","*20:00","*20:15","*20:30","*20:45","*21:00","*21:15","*21:30","*21:45","*22:00"},data!$P$2:$P$20000,"afdeling")>0,1,0))/4)))
 
Je gaat alleen een relevant antwoord krijgen op deze vraag als je een gelijkend voorbeeldbestand kan uploaden. Anderskunnen we alleen in jouw formule gaan werken.
 
Ik begrijp je vraag nog niet helemaal.
Wil je weten hoe vaak een persoon een hit heeft (dus een kwartier heeft gewerkt)?
Waarom een splitsing tussen welke shift deze heeft gewerkt?

In je voorbeeldbestand, waarom hebben Jan en Fons volgens jou 0,25 uur gewerkt, terwijl zij 2 keer een 'hit' hebben?
 
Ik begrijp je vraag nog niet helemaal.
Wil je weten hoe vaak een persoon een hit heeft (dus een kwartier heeft gewerkt)?
Waarom een splitsing tussen welke shift deze heeft gewerkt?

In je voorbeeldbestand, waarom hebben Jan en Fons volgens jou 0,25 uur gewerkt, terwijl zij 2 keer een 'hit' hebben?

De vraag is hoeveel hits iemand heeft in een kwartier, de splitsing tussen shiften is zodat we maar 1 template moeten gebruiken ipv 3 zoals nu.
De rijen waar Jan en Fons in voorkomen met (10u..) hadden er niet mogen staan, is mijn fout, dus als we die negeren hebben ze maar 1 hit.

Maar het optellen van die kwartieren per persoon heb ik wel, het gaat erom dat de formule te lang is, en de vraag is dan ook of deze hetzelfde
kan zijn maar dan korter?
 
Precies de reden waarom de rijen van Jan en Fons er niet in hadden mogen staan, daar ben ik naar op zoek.

Op basis van jouw voorbeeldbestand kan je met aantal.als, het aantal kwartier krijgen dat iemand een hit heeft. Ik begrijp dat je hier niet naar op zoek bent, maar je oorspronkelijke formule is zo lang geworden vanwege het definiëren van de voorwaarden. Dus probeer deze voorwaarden te definiëren:
Bijvoorbeeld, ik wil het aantal kwartier, per persoon, per dag, per shift. of iets dergelijks
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan