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

Optellen op basis van weeknummers

Status
Niet open voor verdere reacties.

laforge2

Gebruiker
Lid geworden
11 jan 2007
Berichten
45
Hallo,

Ik heb een Excel.
Deze heeft per kolom een dag.
Nu wil men per dag, week en maand statistiek gegevens.

Hoe kan ik de cijfers in de kolommen (per rij) optellen op basis van het weeknummer zodat ik weektotalen krijg.

Ik heb als voorbeeld een stukje excel bijgevoegd waarin de dagen en weeknummers zijn opgenomen.

Ik wil geen VBA gebruiken, dus alleen formules.

Alvast bedankt.

Groetjes
Peter
 

Bijlagen

  • Voorbeeld weeknummers.xlsx
    11,3 KB · Weergaven: 36
Via de formule SUMIF is het heel eenvoudig
 

Bijlagen

  • Voorbeeld weeknummers_2.xlsx
    11,5 KB · Weergaven: 27
Waar zit ik naar te kijken? Ik zie een hele hoop (in mijn ogen) nutteloze formules voor het "berekenen". Zoals deze:
Code:
=ALS(WEEKDAG(E4)=1;"Zo";ALS(WEEKDAG(E4)=2;"Ma";ALS(WEEKDAG(E4)=3;"Di";ALS(WEEKDAG(E4)=4;"Wo";ALS(WEEKDAG(E4)=5;"Do";ALS(WEEKDAG(E4)=6;"Vr";"Za"))))))
Kan namelijk ook zo:
Code:
=TEKST(E4;"ddd")
Daarnaast is het een hele ongelukkige manier van opbouwen van een gegevensbestand; je zou dit moeten transponeren naar een verticale kolom, dan kun je heel simpel op met een draaitabel je totalen maken. Maar met Som.Als moet je een eind kunnen komen :).
 
Ook een jaartal ophalen uit een ander bestand is zeer omslachtig.
Bestandje aangepast om de datums meer te automatiseren.
 

Bijlagen

  • Voorbeeld weeknummers_3.xlsx
    12,6 KB · Weergaven: 24
Laatst bewerkt:
Begin Excel altijd met een basiscursus Excel.
Rekenen moet je nl. aan Excel overlaten: met een draaitabel.
Daar kunnen zelf-'gebouwde' formules niet tegenop.
Met een hamer ga je ook niet zagen.
Gebruik Excel waarvoor het bedoeld is.
 
Bedankt allen, bruikbare tips.
De oplossing van popipipo daar kan ik wat mee.
Dank je wel.

De oplossing van popipipo is bijna goed.
Nu is de optelbereik een rij.
Echter heb ik met een matrix te maken.
met som.als ga ik dat niet redden.

groetjes
Peter
 
Laatst bewerkt:
daar kan een representatief voorbeeld veel aan veranderen
 
hoewel ik het eens ben met de meeste kritiek toch ook een variant met een aantal formules hoe je toch te kunnen optellen per week en maand zonder dat je handmatig bereiken hoeft in te stellen


De volgende dingen gaan sowieso fout (deels al genoemd)
1. het weeknummer in rij 1 klopt niet, dat is de "amerikaanse" weeknummer indeling. Voor de Europeese verander je de funtie weeknummer naar weeknummer(E4;21) de toevoeging 21 veranderd naar europeese weeknummer. het gebruik van de functie ISO.WEEKNUMMER()
1 januari 2023 hoort nog bij week 52 van 2022 in de logica van EU / ISO weeknummer
2. rij 3 de dagnamen zijn te ingewikkeld de opmaak veranderen naar "ddd" is voldoende (de andere optie met TEKST() van Octafish werkt ook)

met de volgende functies kun je per week en per maand tellen.

week (sum)
=ALS(WEEKDAG(G4;1)=1;SOM(A5:G13;0);"")
week (offset)
=ALS(WEEKDAG(G4;1)=1;SOM(VERSCHUIVING(G5;0;0;9;-7));"")
maand=ALS(G4=LAATSTE.DAG(G4;0);SOM(VERSCHUIVING(G5;0;0;9;-DAG(G4)));"")

Als je verschuiving functie gebruikt hoort daar wel de waarschuwing bij dat als je de functie duizenden keren gebruikt dat dan de sheet langzaam kan worden.


Er zijn echt veel efficiëntere manier om de sheet op te zetten. Er lijkt veel externe data gebruikt te worden via andere bestanden dan is ook powerquery (gegevens ophalen en transformeren) een goede methode om data op gestructureerde manier binnen te halen.
 

Bijlagen

  • Voorbeeld weeknummers RJ.xlsx
    14,9 KB · Weergaven: 22
Roel,

Ik heb je Excel bekeken,.
Verschuiving is niet mijn terrein, dus weet niet hoe ik dat kan gebruiken.
Maar google is mijn beste vriend, dus zoek ik wel uit.
Je hebt in de som hard de velden gezet waar de weeknummers in voorkomen.
Volgend jaar zal dat misschien anders zijn,.
Is er een manier om het dynamisch te maken of is dat juist met verschuiving?

Gr
Peter
 
Laatst bewerkt:
De somformule is niet hard.
ik heb de formule maar 1x ingevoerd in cel G15 en daarna gekopieerd naar alle andere kolommen
wat de formule doet is alleen de telling van 7 cellen (dagen) voor en incl de huidige kolom optellen als de weekdag een zondag is

ik zal de somformule uitleggen
=ALS(WEEKDAG(L4;1)=1;SOM(A5:G13;0);"")

De functie weekdag vertaald de dagen van een week naar een nummer door de toevoeging weekdag(cel;1) te gebruiken geef je aan dat de week op zondag begint.
De ALS test zegt dus als weekdag 1 (zondag) is dan moet je de 7 cellen optellen. en als de weekdag niet 1 is dan moet je een lege cel tonen.

Als jij de datum in C1 aanpast naar 1-1-2024 dan zul je zien dat automatisch alle weektotalen 1 cel naar voren schuiven.

Met de functie verschuiving kun je vanaf een referentie cel een bereik instellen wat in dit geval opgeteld moet worden. de functie verschuiving heeft 4 besturingselementen rijen naar naar boven (-) of beneden (+) verplaatsen, kolommen naar rechts (+) of links (-) verschuiven. Derde element is de hoogte van het bereik (hoeveel rijen zitten in het bereik) en vierde is breedte, hoeveel kolommen zitten in het bereik.

Als ik de formule uit cel L16 pak om week 1 op te tellen dan geeft dat de volgende uitleg.
(de uitleg over ALS weekdag is hetzelfde als bij de somformule)

=ALS(WEEKDAG(L4;1)=1;SOM(VERSCHUIVING(L5;0;0;9;-7));"")

in deze formule neem ik cel L5 als startpunt vervolgens moet het bereik, dat is de eerste cel onder de datum waar een waarde kan staan. in dit geval hoeft het bereik niet verschoven dus verplaatst 0 rijen en 0kolommen. startpunt van het bereik blijft L5. De hoogte van het bereik is 9 want je wilt L5:L13 optellen en de breedte is -7 omdat je het bereik 7 cellen breed wil voor (en incl kolom L)
na deze instelling wordt ook met verschuiving dus het bereik F5:L13 opgeteld en komt er dus hetzelfde uit als de gewone som.

Voor de maandformule doe ik eigenlijk hetzelfde
=ALS(AI4=LAATSTE.DAG(AI4;0);SOM(VERSCHUIVING(AI5;0;0;9;-DAG(AI4)));"")

Alleen is daar het 4e element breedte nu een formule die bij januari 31 geeft, maar bij februari 28 (of 29, in 2024)
Bij maanden werkt die eenvoudige somformule dus niet omdat elke maand een ander aantal dagen heeft. daarom heb ik verschuiving gebruikt.

Het zijn inderdaad wel formules waarvan je ff paar keer de helptekst moet lezen om ze echt te doorgronden, maar als je het kunstje snapt is het soms heel handig.
 
Hoi Roel,

Samen met alle andere opmerkingen en die van jouw aan de slag gegaan.
Het is me gelukt met verschuiving (eigenlijk niet zo moeilijk).
Nu een andere uitdaging, want ik heb om de 7 dagen een getal en na iedere maand ook.
Die moet ik netjes bij elkaar zien te krijgen zodat ze makkelijk inzicht hebben in de week- en maandgetallen.

Bedankt voor je hulp (en ook de anderen uiteraard).

Gr
Peter
 
De oplossing is gevonden. Bedankt allen voor het meedenken.
Uiteindelijk ben ik dankzij jullie op de oplossing gekomen.
Roel, bedankt voor de uitleg, hier heb ik heel veel aan gehad.

Vraag kan gesloten worden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan