Toon posts:

Grootste bottleneck Excel

Pagina: 1
Acties:

Vraag


  • SamPep
  • Registratie: Januari 2012
  • Laatst online: 19-05 19:23
Mijn vraag
Ik ben voor mijn scriptie bezig met excel en VBA en gebruik dus bestanden die groter zijn dan 100mb. Nu heb ik imo degelijke hardware, maar ik vroeg me af wat ik kan gebruiken om excel sneller te laten lopen, of dat het puur aan excel ligt.

Heb momenteel een 6600k met 8gb 3200 ram m.2 ssd en gtx 1060. Loopt het sneller als ik mijn ram zou upgraden?

Beste antwoord (via SamPep op 10-10-2018 16:24)


  • m-vw
  • Registratie: Mei 2013
  • Laatst online: 31-05 09:25

m-vw

GEZOCHT: De Kluts

CappieL schreef op woensdag 10 oktober 2018 @ 13:31:
En hoe zijn de gebruikte macro's geprogrammeerd?
Als je bijvoorbeeld berekeningen, iteraties, layout-technische veranderingen doet, kan het enorm veel tijd (en resources) schelen als je bijvoorbeeld "Application.ScreenUpdating = False" doet ipv "True"
Behalve de screenupdating kan je ook denken aan het uitzetten van het automatische herberekenen.
Kan je handmatig doen via Formulas -> Calculation options of in de macro met Application.Calculation = xlManual aan het begin van de macro en Application.Calculation = xlAutomatic aan het eind.

Ik begin zelf vaak met:

Application.ScreenUpdating = False
Application.Calculation = xlManual

En eindig met:
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True

Een beruchte Excel killer zijn ook de volatile functies zoals indirect(). Die voeren herberekeningen uit bij iedere wijziging in een sheet. Google is hier uw vriend.

Garmin FR245M + HRM-RUN

Alle reacties


  • Slavy
  • Registratie: December 2007
  • Niet online

Slavy

The War Drags Ever On!

Zijn het .XLS of .XLSX bestanden? Als je een .XLS omzet naar .XLSX wordt hij al een stuk kleiner en geoptimaliseerd.

Daarnaast, heb je al in Google gekeken?

[Voor 23% gewijzigd door Slavy op 10-10-2018 13:16]

Come hear the moon is calling, The witching hour draws near, Hold fast the sacrifice, For now it's the time to die, All hell breaks loose, WITCHING HOUR!


  • SamPep
  • Registratie: Januari 2012
  • Laatst online: 19-05 19:23
.XLSM, moet macro enabled zijn, vandaar dat het ook belachelijk grote bestanden zijn.

En meeste internet tips gaan niet verder dan gebruik 64bit versie, enable all cores en schakel macro's uit (die ik juist nodig heb).

[Voor 44% gewijzigd door SamPep op 10-10-2018 13:22]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Je vergeet aan te geven wat je zelf ziet als bottlenecks: wat is het geheugengebruik? Wordt er 1 of meer CPU-cores vol bezet?

Er zijn algemene optimalisatietrucjes, zoals uitschakelen van schermupdates, query's, .... Je kunt kijken of de volgorde van acties kan helpen. Maar de beste tip: gebruik een schroevendraaier niet als hamer. Zijn er geen betere analyse- of datamanipulatie-tools beschikbaar?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Mag ik vragen wat je aan het doen bent, dat je een Excel-file van 100+ MB hebt?
En is het niet het overwegen waard om zoiets om te zetten naar een database? Om bij Microsoft Office te blijven: Heb je al eens wat met Access gedaan?

En als het dan tóch echt in Excel moet blijven, heb je al eens gekeken naar varianten van andere officepakket leveranceiers? Denk aan OpenOffice Calc of LibreOffice Calc?
In mijn ervaring zijn die een stuk sneller met grote bestanden. En ze bieden functies die Microsoft niet bied, zoals Search&Replace met Regular Expressions (dat is zooooo fijn :) )

[Voor 45% gewijzigd door McKaamos op 10-10-2018 13:30]

Opel Vectra C GTS 1.8 '06 | Honda Magna V30 '85


  • CappieL
  • Registratie: November 2006
  • Laatst online: 31-05 16:35
En hoe zijn de gebruikte macro's geprogrammeerd?
Als je bijvoorbeeld berekeningen, iteraties, layout-technische veranderingen doet, kan het enorm veel tijd (en resources) schelen als je bijvoorbeeld "Application.ScreenUpdating = False" doet ipv "True"

  • Slavy
  • Registratie: December 2007
  • Niet online

Slavy

The War Drags Ever On!

SamPep schreef op woensdag 10 oktober 2018 @ 13:18:
.XLSM, moet macro enabled zijn, vandaar dat het ook belachelijk grote bestanden zijn.

En meeste internet tips gaan niet verder dan gebruik 64bit versie, enable all cores en schakel macro's uit (die ik juist nodig heb).
En de Microsoft documentatie hierover? Staan genoeg tips die jij niet aan kaart. https://docs.microsoft.co...-performance-obstructions

Come hear the moon is calling, The witching hour draws near, Hold fast the sacrifice, For now it's the time to die, All hell breaks loose, WITCHING HOUR!


  • begintmeta
  • Registratie: November 2001
  • Niet online
Sowieso kan je je misschien inderdaad even afvragen of Excel/VBA het gesschiktste gereedschap is voor wat je wil doen, op basis van wat je post is dat zo op het eerste gezicht niet evident.

[Voor 16% gewijzigd door begintmeta op 10-10-2018 13:58]


  • eric.1
  • Registratie: Juli 2014
  • Laatst online: 08:05
SamPep schreef op woensdag 10 oktober 2018 @ 13:14:
Loopt het sneller als ik mijn ram zou upgraden?
Ligt eraan wat je naast Excel doet. Maar Excel 64bit gebruikt max 4GB Mem, als je 8GB in je systeem hebt zitten lijkt het me onwaarschijnlijk dat dit de bottleneck is.

Ik denk eerlijk gezegd dat of je VBA zeer inefficient is, of dat Excel niet de juiste tool is voor jouw project.

  • Puch-Maxi
  • Registratie: December 2003
  • Laatst online: 01:13
Wat probeer je precies te doen, wat voor data is het? Misschien kun je wat aan pre-processing doen, als het CSV data is bijvoorbeeld in Python.

My favorite programming language is solder.


  • SamPep
  • Registratie: Januari 2012
  • Laatst online: 19-05 19:23
Om niet al te diep in mn research method te gaan, ik moet 1000tal regressies doen op een dataset die niet 1:1 gelijk is. Met de programma's waar ik ervaring mee heb (stata, spss, eviews) moet je dit 1 voor 1 doen omdat de dataset niet matched. Dit is met een vba macro op te lossen, waardoor ik aan excel gebonden ben.
Nou weet ik dat R of andere statistische programmeer programma's dit waarschijnlijk beter kunnen doen, maar ik heb 0.0 ervaring met programmeren en de vba macro kostte mij al te lang :').

Daarbij ben ik bezig met mutual fund optimization. Van al de regressies heb ik de coefficienten nodig waar ik uiteindelijk een portfolio mee moet maken, waardoor ik sowieso vrij gebonden aan excel ben.

[Voor 16% gewijzigd door SamPep op 10-10-2018 14:20]


  • Wim-Bart
  • Registratie: Mei 2004
  • Laatst online: 10-01-2021

Wim-Bart

Zie signature voor een baan.

Optimaliseren:
https://plumsolutions.com...ory-and-file-performance/

Vooral dit:
Work from left to right. Excel starts calculating from the top left-hand corner, then continues across and down the sheet. This means that input values should be to the left and above the formulas which are referencing them.

Beheerders, Consultants, Servicedesk medewerkers. We zoeken het allemaal. Stuur mij een PM voor meer info of kijk hier De mooiste ICT'er van Nederland.


  • begintmeta
  • Registratie: November 2001
  • Niet online
SamPep schreef op woensdag 10 oktober 2018 @ 14:13:
Om niet al te diep in mn research method te gaan, ik moet 1000tal regressies doen op een dataset die niet 1:1 gelijk is. Met de programma's waar ik ervaring mee heb (stata, spss, eviews) moet je dit 1 voor 1 doen omdat de dataset niet matched. Dit is met een vba macro op te lossen, waardoor ik aan excel gebonden ben.
Nou weet ik dat R of andere statistische programmeer programma's dit waarschijnlijk beter kunnen doen, maar ik heb 0.0 ervaring met programmeren en de vba macro kostte mij al te lang :').
Ik zie niet helemaal voor me wat je precies bedoelt, maar ik vermoed dat je met Stata of SPSS misschien meer had gekund dan je dacht.

Acties:
  • Beste antwoord
  • 0Henk 'm!

  • m-vw
  • Registratie: Mei 2013
  • Laatst online: 31-05 09:25

m-vw

GEZOCHT: De Kluts

CappieL schreef op woensdag 10 oktober 2018 @ 13:31:
En hoe zijn de gebruikte macro's geprogrammeerd?
Als je bijvoorbeeld berekeningen, iteraties, layout-technische veranderingen doet, kan het enorm veel tijd (en resources) schelen als je bijvoorbeeld "Application.ScreenUpdating = False" doet ipv "True"
Behalve de screenupdating kan je ook denken aan het uitzetten van het automatische herberekenen.
Kan je handmatig doen via Formulas -> Calculation options of in de macro met Application.Calculation = xlManual aan het begin van de macro en Application.Calculation = xlAutomatic aan het eind.

Ik begin zelf vaak met:

Application.ScreenUpdating = False
Application.Calculation = xlManual

En eindig met:
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True

Een beruchte Excel killer zijn ook de volatile functies zoals indirect(). Die voeren herberekeningen uit bij iedere wijziging in een sheet. Google is hier uw vriend.

Garmin FR245M + HRM-RUN


  • SamPep
  • Registratie: Januari 2012
  • Laatst online: 19-05 19:23
m-vw schreef op woensdag 10 oktober 2018 @ 15:03:
[...]


Behalve de screenupdating kan je ook denken aan het uitzetten van het automatische herberekenen.
Kan je handmatig doen via Formulas -> Calculation options of in de macro met Application.Calculation = xlManual aan het begin van de macro en Application.Calculation = xlAutomatic aan het eind.

Ik begin zelf vaak met:

Application.ScreenUpdating = False
Application.Calculation = xlManual

En eindig met:
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True

Een beruchte Excel killer zijn ook de volatile functies zoals indirect(). Die voeren herberekeningen uit bij iedere wijziging in een sheet. Google is hier uw vriend.
Thanks, dit scheelt echt enorm!

  • SamPep
  • Registratie: Januari 2012
  • Laatst online: 19-05 19:23
begintmeta schreef op woensdag 10 oktober 2018 @ 14:35:
[...]

Ik zie niet helemaal voor me wat je precies bedoelt, maar ik vermoed dat je met Stata of SPSS misschien meer had gekund dan je dacht.
Ik heb stock performance data die ik moet regressen op factor data. Alleen niet elke stock bestaat even lang, waardoor ik per stock handmatig had moeten selecteren tot welke datum ik het wilde regressen. De prof. Die mij begeleid gaf aan dit icm vba te doen want dit is bij stata e.d. erg tedious, aangezien daar geen functie voor is.

  • Atanamir
  • Registratie: December 2014
  • Nu online
Je kunt ook nog eens kijken naar het gebruik van arrays ipv for ... next loops. Zeker als je bestand echt tienduizenden rijen heeft merk je dat verschil zeker!
Post in deze thread legt dat wel goed uit.

https://www.mrexcel.com/f...ng-large-amount-data.html

Update: Wellicht obvious, maar let ook op dat zodra je calculation op manual zet, zoals in een post hierboven staan, eventuele formules in je sheet niet meer geupdate worden terwijl de macro loopt.

[Voor 24% gewijzigd door Atanamir op 10-10-2018 17:28]


  • Slavy
  • Registratie: December 2007
  • Niet online

Slavy

The War Drags Ever On!

SamPep schreef op woensdag 10 oktober 2018 @ 16:24:
[...]


Thanks, dit scheelt echt enorm!
Dit stond ook allemaal in eerder genoemde Microsoft documentatie, tip voor volgende keer dus om die eerst door te lezen.

Come hear the moon is calling, The witching hour draws near, Hold fast the sacrifice, For now it's the time to die, All hell breaks loose, WITCHING HOUR!

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee