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

Uitdaging met vereenvoudiging optelling somproduct

Status
Niet open voor verdere reacties.

Tijn74

Gebruiker
Lid geworden
20 apr 2012
Berichten
8
Beste creatievelingen,

Met Excel ben ik al een tijd aan het stoeien om in een planningsbestand, een aantal optellingen te doen aan de hand van een somproduct formule. (matrix)

In het planningsblad staan:
in kolom F9:F296 per regel verschillende disciplines vermeld.
In kolom G9:G296 per regel verschillende vestigingen vermeld.
In kolom M9:M296 per regel wel of geen uren verschilt per regel (M is een specifieke dag, N de dag er na, etc…

In een rekenblad heb ik een soort matrix (kruistabel) waarmee ik aan de hand van “x” kan vinken of ik een zoekterm wel of niet wil gebruiken. Ik wil dan doormiddel van een formule de gegevens uit de planning filteren. Bijvoorbeeld, alle E uren op vestiging 2 en 3. Zie voorbeeld.

A B C D E F G H
1 Dis. 1 Dis. 2 Dis. 3 Vest. 1 Vest. 2 Vest. 3 Vest.4 Dag (M)
2 X x X Formule
3 x X X x Formule
4 x X x X X Formule
5 x x Formule

De bedoeling is dat het volgende gebeurt:
Kolom A t/m C = zoekterm 1 (kunnen meerdere zoektermen zijn, bijvoorbeeld rij 3 waar gezocht wordt op Dis. 1 en Dis.2
Kolom D t/m G = zoekterm 2, dit kunnen ook meerdere zoektermen zijn zoals hier boven omschreven.
De formule zou moeten zijn als: Als (A of B of C = X ) en (D of E of F of G = X) dan aangekruiste velden opzoeken en optellen. Dus als voorbeeld als: A=X, D=X en E=X, dan regels optellen waarbij A+D of A+E is.

Voorbeeld formule in cel H2 :
Code:
=SOM(SOMPRODUCT(ALS(((Planning!$F$9:$F$296=$A$1)*($A2="x")*(Planning!$G$9:$G$296=$D$1:$G$1)*($D2:$G2="x"));Planning!M$9:M$296)))
Deze formule functioneert wel, alleen kijkt die enkel naar 1 discipline. In dit geval alleen in kolom A

Deze formule kijkt alleen naar 1 discipline per vestiging en ik zou formule een aantal keer achter elkaar kunnen plakken waardoor er een hele lange formule ontstaat die doet wat ik wil. Maar nu zoek ik een korte formule om ruimte en rekentijd te besparen. De formule komt een hele boel keer voor op het rekenblad.

Dit is ongeveer het geen dat ik zoek, alleen functioneert deze dan niet. Omdat ik met deze formule zoek met twee variabelen, willekeurige invulling in kolom A2:D2 en in E2:H2.
Code:
=SOM(SOMPRODUCT(ALS(((Planning!$F$9:$F$296=$A$1:$D$1)*($A2:$D2="x")*(Planning!$G$9:$G$296=$E$1:$H$1)*($E2:$H2="x"));Planning!M$9:M$296)))

En dit is de formule aan elkaar geplakt die werkt, maar lang is, en zeker als je hem 5 keer moet hebben om 5 dagen bij elkaar te pakken om een werkweek te hebben.

Deze formule doet voor het voorbeeld wat ik verlang, al heb ik wel het aantal criteria verminderd in het voorbeeld.
Formule in Cel H2 en dan door kopiëren naar beneden.
Code:
=SOM(SOMPRODUCT(ALS(((Planning!$F$9:$F$296=$D$1:$G$1)*($D2:$G2="x")*(Planning!$G$9:$G$296=$A$1)*($A2="x"));Planning!M$9:M$296));SOMPRODUCT(ALS(((Planning!$F$9:$F$296=$D$1:$G$1)*($D2:$G2="x")*(Planning!$G$9:$G$296=$B$1)*($B2="x"));Planning!M$9:M$296));SOMPRODUCT(ALS(((Planning!$F$9:$F$296=$D$1:$G$1)*($D2:$G2="x")*(Planning!$G$9:$G$296=$C$1)*($C2="x"));Planning!M$9:M$296)))

En als je deze dan 5x aan elkaar plakt, heb je een werkweek te pakken, alleen is ie dan wel erg lang. (de M kolomen worden dan wel N, … en daarna O, en P en Q) (zie voorbeeld in cel H12 en I12)

Het geen dat ik eigenlijk wil bereiken is dat ik niet per regel een aparte formule heb staan, maar voor iedere regel de zelfde, voor het gemak.

Mocht iemand een idee hebben wat mij een eind op weg zou helpen graag. ’t Is een soort uit de hand gelopen hobby project van me geworden.


Oh ja, ik gebruik overigens Excel 2007

Alvast bedankt,
Martijn

Ps. Als voorbeeld heb ik er een bijlage bijgedaan.
 

Bijlagen

  • voorbeeld.xlsx
    15,3 KB · Weergaven: 60
Laatst bewerkt door een moderator:
Moet discipline en vestiging niet omgedraaid zin op tab blad planning.
Ik ben aan het puzzelen om er aan uit te kunnen, het is ene hele boterham.

mvg Jean-Paul
 
Ik heb je vraag even bekeken maar begrijp hem niet.
Maar vraagstukken die opgelost worden met een 'somproduct formule' kunnen vaak simpeler en flexibeler opgelost worden met een draaitabel.
Heb je dat al in overweging genomen?
 
Moet discipline en vestiging niet omgedraaid zin op tab blad planning.
Ik ben aan het puzzelen om er aan uit te kunnen, het is ene hele boterham.

mvg Jean-Paul

Klopt dat op het tapblad Planning de tekst Vestiging en Disipline omgedraaid zijn. Dit is even een misser van mij.
 
Ik heb je vraag even bekeken maar begrijp hem niet.
Maar vraagstukken die opgelost worden met een 'somproduct formule' kunnen vaak simpeler en flexibeler opgelost worden met een draaitabel.
Heb je dat al in overweging genomen?

Ik heb eigenlijk niet gekeken naar een oplossing met een draaitabel. Er is zeg maar een grote planning, per werkdag, per regel een locatie en een disipline en vestiging. Door van alles op verschillende manieren te berekenen tel ik bepaalde uren op, waarna dit wordt weergeven in bepaalde grafieken. Bijvoorbeeld : Hoeveel werk is er, welke discipline heeft personeel over of te kort, hoeveel wordt er uitbesteed, enz. En dan steeds een jaar terug kijkend en 1 jaar vooruitkijkend.

De planning die ik hiervoor hanteer werkt wel, alleen ben ik hem aan het afslanken zeg maar.

Zou het geen dat ik aan gegevens wil hebben makkelijker te krijgen zijn met een draaitabel?
 
Laatst bewerkt:
Ik heb in dit bijgevoegde bestand, de teksten iets aangepast, misschien dat het dan duidelijker is. De uitkomsten op het rekenblad gebruik ik dan in grafieken.
 

Bijlagen

  • voorbeeld.xlsx
    18,2 KB · Weergaven: 45
Hier een poging via draaitabellen.
Voor elke rij in tabblad rekenblad een aparte draaitabel gemaakt.
(1 maken en de rest kopieren)
Je kunt dan 'vestiging' en 'Discipline' selecteren en daaronder krijg je de uitslag.

Enige "nadeel": je krijgt niet alle resultaten exact onder elkaar.

Voordeel
Geen lange formules
eenvoudig filter te maken (ipv 'x-jes')
 

Bijlagen

  • Copy of voorbeeld.xlsx
    24,8 KB · Weergaven: 32
Hier de verschillende draaitabellen in een ander tabblad gezet en de layout iets aangepast
Hij komt nu beter overeen met jou voorbeeldje
 

Bijlagen

  • Copy of voorbeeld2.xlsx
    40,8 KB · Weergaven: 56
Met deze opzet is het wel makkelijker om de gegevens er uit te halen. Ik zit dan alleen nog er mee dat de planning wekelijks veranderd, en ook doorschuift. Dus de afgelopen week gaat er af en aan het einde van de planning komt er een week bij. Ik zie zo even niet hoe ik bij een draaitabel er op een makkelijke manier (via een macro bv) er een week bij kan plakken.

Het geen wat ik met mijn huidige planning deed, was eerst middels een macro alle waarden van de afgelopen week vastzetten, vervolgens de planning 1 week verschuiven, en dan op het rekenblad een week er bij plakken zodat ik wel in grafieken een periode terug kan kijken.
Het filteren gaat via een draaitabel wel makkelijk, zit alleen met dat doorschuiven en het steeds updaten van alle gegevens.
 
Laatst bewerkt door een moderator:
en als je met naam bereiken werkt en de formule indirect.
waar komen week3 en week4 enz te staan.

mvg Jean-Paul
 
Met naam berijk zou het denk wel kunnen, Ik heb wel een vaste gegevens omvang in de planning. Week, 3, 4 enz loopt door tot kolom PF


Bedankt,

Groeten,
Martijn
 
Laatst bewerkt door een moderator:
Ik heb de formule kunnen vereenvoudigen:

In cel H14
Code:
=SOMPRODUCT(ALS((((Planning!$G$9:$G$294=$A$1)*($A14="x"))+((Planning!$G$9:$G$294=$B$1)*($B14="x"))+((Planning!$G$9:$G$294=$C$1)*($C14="x")))*(Planning!$F$9:$F$294=$D$1:$G$1)*($D14:$G14="x");Planning!M$9:M$294))

Of te wel, : Als (A of B of C) en (D of E of F of F) dan optellen


en de week variant.

In cel H15
Code:
=SOMPRODUCT(ALS((((Planning!$G$9:$G$294=$A$1)*($A15="x"))+((Planning!$G$9:$G$294=$B$1)*($B15="x"))+((Planning!$G$9:$G$294=$C$1)*($C15="x")))*(Planning!$F$9:$F$294=$D$1:$G$1)*($D15:$G15="x");(Planning!M$9:M$294+Planning!N$9:N$294+Planning!O$9:O$294+Planning!P$9:P$294+Planning!Q$9:Q$294)))

Enige nadeel van de week variant is, dat er een foutmelding komt door de V tjes in de planning (vrijedagen)
 
Laatst bewerkt door een moderator:
Dus de afgelopen week gaat er af en aan het einde van de planning komt er een week bij.

Hieruit begrijp ik dat je de telling steeds van 2 weken wilt
Op mijn voorbeeld met draaitabel voortbordurend heb ik dit gemaakt.

via een selectie cel (planning L5) kies je de eerste van 2 weken
Hierdoor worden die 2 weken opgehaald uit de kolommen erachter
Zo hoeft je dus de draaitabel zelf niet aan te passen maar pas je de inhoud van de cellen aan waaraan de draaitabel gekoppeld is.
 

Bijlagen

  • Copy of voorbeeld3.xlsx
    64,9 KB · Weergaven: 47
Willem, heel erg bedankt, hier kom ik echt een stuk verder mee. Dit maakt het een stuk lichter dan die formules.


Groeten,
Martijn
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan