Sneller dan verwacht
Bemerkingen over de werkwijze:
- geen VBA, wel matrixfunctie
- de formules voor de gele cellen kunnen uiteraard simpeler dan die voor de oranje cellen. Zo kan in cel B14 ook staan:
= -B3 (dit komt enkel en alleen door wat je wilt berekenen: som van de oranje cellen - som van de gele cellen = -(som van de gele cellen - som van de oranje cellen). Als je nog volgt...).
- Ook de formule in B3 kan nog simpeler:
=SUM((MOD(COLUMN($D$3:$GA$3)-5;3)=0)*(($D$3:$GA$3)-($E$3:$GB$3)))
Maar dan is de uitbreiding naar de gele cellen niet meer 100% vlot. Laat maar zitten als je dat niet begrijpt, geen enkel probleem).
- pas op met kolommen invoegen en verwijderen. De formules maken nl. gebruik van de restfunctie. Ik probeer de formule van cel C3 uit te leggen:
1/ trek van de kolomnummer 5 af. (eerste gebruikte kolom is E, dit is de 5de kolom)
2/ laat berekenen of de rest van dit getal, gedeeld door 3, nul is. Dwz. startend met kolom E als eerste kolom, als de rest = 0 wil dit zeggen dat we met een veelvoud van 3 zitten, en dit levert dus elke derde kolom op na kolom E. Dit zijn precies de oranje kolommen die we willen evalueren in B3.
3/ Je laat vervolgens mod(...)=0 is dus ofwel 1 (als het een oranje kolom is, ofwel 0 (geen oranje kolom).
4/ Dit resultaat gaan we "celsgewijs" vermenigvuldigen met de waarden van de cellen.
Wat er dus gebeurt is het volgende (en merk op dat het een matrix functie is die door een bepaald bereik gaat, hier het bereik D3:GA3):
in D3: is het een oranje kolom? d.i. is mod(...) = 0?
ja = 1, neen = 0
doe die 1 of 0 maal de waarde in cel D3 zelf.
Dus 1*D3 of 0*D3
Doe hetzelfde voor E3, F3, G3, ...
Tel de resultaten op (sum).
De som bestaat dus uit nullen (voor de niet-oranje cellen; en ook de oranje cellen met waarde 0), of andere getallen (voor de oranje cellen die niet 0 zijn).
Hopelijk is dit duidelijk zodat je zonder probleem nog wat verder aanpassingen kan maken die evt. nodig/gewenst zijn.
Zie ook bijlage.
Indien niet, vraag maar.
Gtrz
WG