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

uitvoeringstijd van de berekeningen

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
481
goede morgen allemaal,

heeft het gebruik van formules met INDIRECT bepalend voor de uitvoeringstijd van de berekeningen?
 

Bijlagen

Zeer zeker. Veel INDIRECT functies maken een werkblad traag....

"Bestaat er een alternatief voor INDIRECT?"
Dan zul je toch even een toelichting moeten geven wat je nu precies wilt...
 
is het mogelijk om de formule in Berekenen!C3
GEMIDDELDE(INDIRECT("B"&MAX(1;RIJ(C3)-C$2+1)):B3)
te vervangen door een formule met hetzelfde resultaat
 
Ik zou zeggen: probeer het eerst eens uit. Computers kunnen heel verschillend in snelheid zijn; dat geldt overigens ook voor versies van Excel (2000 was bijv. veel sneller dan 2007). Zolang je geen merkbare vertraging waarneemt doet het er niet toe. Een 'vertraging' van 1 msec. is voor mensen niet waarneembaaar, dus gelijk aan geen vertraging.
 
Laatst bewerkt:
Opm.
1. Het stukje MAX(..) zit erin vanwege de eerste regel denk ik. Heb ik iets versimpeld.
2. Het resultaat van INDIRECT("B"&MAX(1;RIJ(C3)-C$2+1)):B3) is bij doortrekken altijd de huidige regel en de vorige regel.

Oftewel jouw formule in C3 is hetzelfde als zoiets:
Code:
=ALS(AA3="";"";ALS(RIJ()=3;B3;(B2+B3)/2))
 
Laatst bewerkt:
Beste AlexCEL

de door u voorgestelde formule is geplaatst in kolom BR, voor rij 3 en 4 is het resultaat juist, voor de andere rijen is de afwijking te zien in kolom BS

in kolom BU staat een formule die een formule maakt
in kolom BV staat een kopie van de waarde in kolom BU

als men in kolom BV dubbelklikt op een cel verschijnt het resultaat van de formule.

bestaat er een mogelijkheid om zonder INDIRECT het resultaat in de kolom BU te bekomen
 

Bijlagen

Bu3
Code:
=gemiddelde(verschuiving(b3;als(rij()<23;3-rij();-19);;als(rij()<23;rij()-2;20);))
of nog
=GEMIDDELDE(VERSCHUIVING(B3;MAX(3-RIJ();-19);;MIN(RIJ()-2;20);))
 
Laatst bewerkt:
heel erg bedankt.
wel een kleine aanpassing gedaan omdat -19 en 20 verwijzen naar cel C2
Code:
=GEMIDDELDE(VERSCHUIVING(B3;MAX(3-RIJ();(C$2-1)*-1);;MIN(RIJ()-2;C$2);))
 
Formules met VERSCHUIVING zijn inderdaad iets sneller dan formules met INDIRECT
in een bestand met veel formules, waarin in totaal 45040 keer VERSCHUIVING werd gebruikt gaf dit volgende volgende verschillen.
opslag 4611 ipv 4918 kB
opentijd 20 ipv 33 sec.
verwerkingtijd van 496 naar 45040 keer formules met VERSCHUIVING 123 ipv 129 sec. Hier had ik op een groter verschil gehoopt.
 
op dergelijke vragen kan je moeilijk ongenuanceerd antwoorden.
Je moet het bestand zelf zien en dan geleidelijk uitkleden en ondertussen doorgaan met chronometreren en dan kom je vaak tot andere conclusies.
- gooi je ene werkblad in een totaal nieuwe test-werkmap en sluit je eerste
- gooi er alle voorwaardelijke opmaken uit
- controleer op je nergens in je formules over volledige kolommen of rijen (>1.000.000) aan het rekenen bent
- matrixformules zijn ook vaak killers
- afhankelijk van de opbouw van je formules, gooi je er geleidelijk aan kolom per kolom uit.

iedere keer kijk je hoeveel tijd je nodig hebt en kijk wie er de echte boosdoeners zijn.
 
Ook VERSCHUIVING is een volatiele functie, je zou beter de INDEX functie kunnen gebruiken. Maar ik heb liever een omschrijving van wat nou precies de bedoeling is dan een bestand waarin ik zelf mag gaan proberen te doorgronden wat er precies berekend wordt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan