Just nu i M3-nätverket
Gå till innehåll

"Avlyssna" Excel


Monshi

Rekommendera Poster

Som vanligt när man bygger lite större ark kommer man till ett läge då man inser att det är något som inte riktigt blivit så bra, så snabbt, som man tänkt. Det vill säga det är några funktioner som beräknas lite väl ofta, när de inte behövs (av vad jag anser) och därmed slöar ned Excel en del.

 

Jag undrar helt enkelt hur man egentligen ska attackera detta problem? Kan jag exempelvis avlyssna Excels beräkningsmotor och se vilka celler/funktioner det är som beräknas? Se vilket blad, vilken funktion det är som beräknas?

 

Samt

Formler i Namn - får en känsla av att dessa kan orsaka fler omräkningar än andra. Dvs om jag har en beräkning av ett område med en förskjutningsformel i ett namn och använder detta namn i ex.v. en PASSA så kan en onödiga omräkningar av namnet ge en omräkning av PASSA vilket alltid är olyckligt då PASSA är en av de potentiellt jobbigaste formlerna.

 

Och ja, jag har mina misstanker som märkes. Det är PASSA-funktioner tror jag som räknas om i tid och otid...

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

avlysning, ingen aning. Men det finns verktyg, typ:

http://www.decisionmodels.com/optspeedb.htm

tyvärr kostar det Dolleros. Sidan har i alla fall bra optimeringstips i största allmänhet.

 

Om du kör makron så kan du leka med:

Application.Calculation

Application.Calculate (application, range, worksheet)

 

Dvs du bestämmer själv när/om updatering skall ske. Å ena sidan bör det reducera belastningen, men å andra sidan ökar det möjligheten att göra bort sig, fullständigt...

 

Länk till kommentar
Dela på andra webbplatser

Application.Calculate ger nog mer problem än det är värt....

 

Nåja, har gått igenom arbetsboken och kapslat in en stor mängd PASSA-formler i OM-satser så att de ej beräknas i onödan, tror det kan ge en viss effekt.

 

Sedan kan kan titta på när funktionen Worksheet_Calculate exekveras, då vet man att något på bladet räknas om. Och där finner jag en känd mystik. På ett blad har jag en mängd PASSA som enbart bör räknas om när jag kör ett visst formulär som skriver till en cell som PASSA tittar på.

 

Men oavsett vilken cell jag skriver i i boken, oavsett blad, så exekveras Calculate på det bladet och då troligen är det just PASSA-formlerna som räknas om. Mystiskt.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Ett andra svar - den sidan har jag tittat på många gånger förr men alltid finns det något nytt.

 

Har nu bytt ut en mängd FÖRSKJUTNING mot INDEX. Fast fortfarande är den lite seg. Kanske kan eliminera en del till FÖRSKJUTNINGS-formler men inte så lätt. Använder exempelvis en del som Namn som definierar/hämtar listor som PASSA söker i, många av dessa går inte alls att ändra.

 

Har även en försöks-version där jag testar lite med Calculate och den versionen är bra mycket snabbare att hantera. Kanske ska testa lite och se om jag ska flytta en del formel-funktioner som bara används av VBA till VBA. Kanske boken blir snabbare då bortsett från när formulären/VBA-koden körs.

 

 

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Pivot?

Jag vet att du är förtjust i dina PASSA, men du kanske skall fundera på fler pivotabeller? De kräver ju handpåläggning för att uppdateras. Dvs perfekt för ett blad med makron. Om man bara ser till att "återanvända" själva datamatrisen när man skapar nya pivoter så behöver de inte bygga på storleken speciellt mycket.

 

Det finns även formler för att hämta ut delmängder ur pivotabeller. Det är inte någonting jag är helt hemma på. Men det kan vara smidigt om man är rädd för att data skall "flytta på sig" vid uppdateringar.

 

=HÄMTA.PIVOTDATA(A3;"asdf") (ehhh, "asdf" beror på att jag slog in en massa grunddata "slumpmässigt")

HÄMTA.PIVOTDATA står som GETPIVOTDATA i hjälpfilen

 

Länk till kommentar
Dela på andra webbplatser

Nej, Pivot passar inte i detta fallet. Handlar om att slå upp priser i prislistor bland annat. Saker som jag egentligen tycker hör hemma i en databas men i detta fallet passar företaget jag gjort den åt bättre i Excel då det är lättare att distribuera ut i landet.

 

Men kanske det går att göra delar av det jag gör på annat sätt. Jag ska fundera på saken. Nu går det ivartfall snabbt när jag stängt av automatiska beräkningarna. Enda tillfället då det kan gå helt galet, tror jag, där om arbetsboken kraschar när beräkningarna är avstängda. Öppnar de annan bok därefter så lär beräkningarna vara avstängda även då. Bäst vore om jag kunde snabba upp den nog så att det inte behövdes men jag tror inte jag kan nå dit så kanske det inte är värt besväret att försöka.

 

Jag ska testa att radera blad för blad i boken och se vad som sker med prestanda, se vilket det är som drar mest.

Edit:

Fast om du vill kan jag nog skicka över det jag skapat till dig så får du ta dig en titt och se om du har någon annan idé hur jag kan snabba upp det. Tror inte det finns något hemligt i den och jag litar på dig.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

 

[inlägget ändrat 2007-09-28 15:28:41 av Monshi]

Länk till kommentar
Dela på andra webbplatser

Jag mailar en adress. Skickar du en kopia så kan jag kika på det i kväll. Tyvärr har jag en känsla av att vi använder ungefär samma knep. Men av någon anledning är det enklare att rota i andras blad än att försöka fixa sina egna :-).

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...