Forum: PC Hard- und Software Excel langsam trotz gutem PC


von siebert (Gast)


Lesenswert?

Hallo,

ich nutze Windows 10 64bit, einen i7-7700, 16GB Arbeitsspeicher und 
Excel 64 Bit.


Da ich momentan mit größeren Dateien [~100MB] arbeite habe ich 
festgestellt, dass Excel ständig hängt und langsam is, obwohl im 
Taskmanager nur 20% CPU und 2GB Arbeitsspeicher-Auslastung angezeigt 
wird.
Zu den Datein: Hauptsächlich If-Else mit verschiedenen VBA-Skripten, 
welche aber nicht der Auslöser sind.


Sollte in der 64-Bit variante nicht deutlich mehr Arbeitsspeicher 
verwendet werden können?
Hat jemand eine Idee wo das Problem liegen kann?


MfG Siebert

von (prx) A. K. (prx)


Lesenswert?

siebert schrieb:
> Hat jemand eine Idee wo das Problem liegen kann?

Zu gross? ;-)

Mit 100MB bist du jenseits der Wohlfühlgenze von Excel. Es gibt 
natürlich ein paar Tuning-Möglichkeiten (=> Web), aber in dieser 
Dimension solltest du über eine Datenbank nachdenken.

von Frager (Gast)


Lesenswert?

Kann es sein, dass Excel nach wie vor nur GB verwalten kann und den Rest 
auslagern muss?

von siebert (Gast)


Lesenswert?

A. K. schrieb:
> Mit 100MB bist du jenseits der Wohlfühlgenze von Excel.

Was ist denn die Wohlfühlgrenze?

von Dirk B. (dirkb2)


Lesenswert?

siebert schrieb:
> A. K. schrieb:
>> Mit 100MB bist du jenseits der Wohlfühlgenze von Excel.
>
> Was ist denn die Wohlfühlgrenze?

53x7 oder 12x31 Felder.



Wenn Excel die Blätter neu berechnen muss, was auch passieren kann, wenn 
du mit VBA eine Zelle neu beschreibst, dann dauert es etwas.

von T.roll (Gast)


Lesenswert?

siebert schrieb:
> Hat jemand eine Idee wo das Problem liegen kann?

An der falschen Anwendung für dein Problem. Sprich mal laut die Funktion 
von Excel aus: TABELLENKALKULATION

Was steht da nicht drin? Dateiverarbeitung!

von Kolja L. (kolja82)


Lesenswert?

A. K. schrieb:
> Es gibt
> natürlich ein paar Tuning-Möglichkeiten

Pandas (mit matplotlib, wenn gewünscht.)

von Peter M. (r2d3)


Lesenswert?

Hallo siebert,

siebert schrieb:
> Hallo,
>
> ich nutze Windows 10 64bit, einen i7-7700, 16GB Arbeitsspeicher und
> Excel 64 Bit.
>
> Da ich momentan mit größeren Dateien [~100MB] arbeite habe ich
> festgestellt, dass Excel ständig hängt und langsam is, obwohl im

Wobei ist es denn langsam?

> Taskmanager nur 20% CPU und 2GB Arbeitsspeicher-Auslastung angezeigt
> wird.
> Zu den Datein: Hauptsächlich If-Else mit verschiedenen VBA-Skripten,
> welche aber nicht der Auslöser sind.

Warum bist Du Dir da so sicher?
Wie werden Deine VBA-Skripte denn aufgerufen?

> Sollte in der 64-Bit variante nicht deutlich mehr Arbeitsspeicher
> verwendet werden können?
> Hat jemand eine Idee wo das Problem liegen kann?

Berechnungsmodus: Manuell oder automatisch?

von Max M. (jens2001)


Lesenswert?

siebert schrieb:
> nur 20% CPU

Wieviele Cores verwendet Excel?

von Peter M. (r2d3)


Lesenswert?

Max M. schrieb:
> siebert schrieb:
>> nur 20% CPU
>
> Wieviele Cores verwendet Excel?

Welche Excelversion nutzt Du?
Parallele Tabellenberechnung mit mehreren Kernen wurde nämlich erst 
später mal drangefrickelt.

von siebert (Gast)


Lesenswert?

Peter M. schrieb:
> Max M. schrieb:
>> siebert schrieb:
>>> nur 20% CPU
>>
>> Wieviele Cores verwendet Excel?
>
> Welche Excelversion nutzt Du?
> Parallele Tabellenberechnung mit mehreren Kernen wurde nämlich erst
> später mal drangefrickelt.

Ich habe Excel 2016 64 Bit version.
Aufgerufen werden die Funktionen über einen Button, der die Funktion 
über Call aufruft.Berechnungen stehen auf Manuell, sollen aber später 
auf automatisch laufen!

Das Größte Problem ist, dass die Datei so riesig ist, weil ich viele 
WENN-Dann Funktionen benutze in einem 1000x1000 Feld. Diese brauche ich 
aber auf jeden Fall, da ich einen Wert in die Zelle schreiben muss, wenn 
der Wert größer als X ist und einen anderen, wenn der Zellwert kleiner 
ist.

Oder gibt es dafür eine andere Möglichkeit?
Würde es helfen, die Wenn dann funktion in VBA zu schreiben und nicht 
direkt als Formel in jede Zelle?

von siebert (Gast)


Lesenswert?

Achja, und mein Prozessor hat 8 Kerne, die ich in den Excel Optionen 
auch aktiviert habe.

von Fäzes, der Heilige Stuhl (Gast)


Lesenswert?

siebert schrieb:
> Das Größte Problem ist, dass die Datei so riesig ist, weil ich viele
> WENN-Dann Funktionen benutze in einem 1000x1000 Feld. Diese brauche ich
> aber auf jeden Fall, da ich einen Wert in die Zelle schreiben muss, wenn
> der Wert größer als X ist und einen anderen, wenn der Zellwert kleiner
> ist.
Was ist ein "1000x1000 Feld"? Soll das eine Tabelle sein? Dann schreibe 
bitte auch Tabelle. In ein Feld (damit ist eine ZELLE gemeint) kann man 
mit WENN-Dann Funktionen keinen Wert reinschreiben. Denn es steht ja 
schon einer drin. Nämlich der, mit dem über "WENN-Dann Funktionen" 
verglichen wird.

Ich verstehe jedenfalls nicht, was du da tust :(

von siebert (Gast)


Lesenswert?

nehmen wir an ich habe in A1:B2 werte stehen, die mit x verglichen 
werden sollen

dann schreibe ich in A5:B6

Wenn(A1>X;1;"")
also A1 > X, dann schreibe eine 1 in A5, sonst lasse A5 leer
das selbe dann für B5, A6 und B6.

und das eben in einer "Tabelle" mit 1000 Zeilen und Spalten.

von Fäzes, der Heilige Stuhl (Gast)


Lesenswert?

Für 1000000 Formeln wird der von Excel allokierbare Arbeitsspeicher 
nicht reichen.

Lass die Formeln halt weg und trag die Werte per VBA ein. Länger als ein 
paar Sekunden dauert das nicht, und braucht so gut wie keinen Speicher.

von Fäzes, der Heilige Stuhl (Gast)


Lesenswert?

hier steht was in VBA. Sollte funktionieren

Beitrag "Re: Excel: If-Else Alternativen"

von Susi Sorglos (Gast)


Lesenswert?

Übermäßig viel verlinktes Zeug, was erst in den RAM geholt werden muß, 
kostet auch Zeit.

von Peter D. (peda)


Lesenswert?

Meine Erfahrung ist, daß viele Anwendungen von einem schnellen 
Datenträger am meisten profitieren, also einer SSD.
Die Nachrüstung von RAM ist dagegen meistens enttäuschend, ein 
Geschwindigkeitszuwachs bestenfalls homöopatisch.

von Wolfgang (Gast)


Lesenswert?

Peter D. schrieb:
> Meine Erfahrung ist, daß viele Anwendungen von einem schnellen
> Datenträger am meisten profitieren, also einer SSD.

Früher (tm) hat man für solche Fälle eine RAM-Disk eingerichtet.

von Ich Nicht (Gast)


Lesenswert?

siebert schrieb:
> Achja, und mein Prozessor hat 8 Kerne, die ich in den Excel
> Optionen auch aktiviert habe.

Ein I7 7700 hat meines Wissens nach 4 Kerne + Hyperthreating.

100Mibyte Exceltabellen sind aus meiner Sicht etwas extrem. Denke da 
sollte man darüber nachdenken, ob es wirklich Sinn macht, sowas noch in 
Excel zu handhaben.

von Christobal M. (c_m_1)


Lesenswert?

Ich Nicht schrieb:
> 100Mibyte Exceltabellen sind aus meiner Sicht etwas extrem. Denke da
> sollte man darüber nachdenken, ob es wirklich Sinn macht, sowas noch in
> Excel zu handhaben.

ich vermute das der TO halt nur excel kennt, datenbanken/sql aber nicht.
da wird das zeug halt in excel gemacht.

ob er gewillt ist oder es sich lohnt sich in etwas anderes 
einzuarbeiten… ist halt aufwändig.

von Peter M. (r2d3)


Lesenswert?

Christobal M. schrieb:
> ich vermute das der TO halt nur excel kennt, datenbanken/sql aber nicht.

Ich sehe den Mehrwert von Datenbanken an dieser Stelle nicht.
Für Matrizenoperationen sind die von Yalu genannten Software-Pakete 
leistungsfähiger.
Bei Matlab beispielsweise weiß ich, dass z.B. Matrizen komplett in das 
RAM passen müssen, weil Matlab da "in-memory" operiert. Ein Teil der 
schnellen Matrizenoperationen rührt auch daher.

Über SAP habe ich gelesen, dass die für "in-memory" so ein Extraprodukt 
"Hana"? oder so ähnlich anbieten.

> da wird das zeug halt in excel gemacht.
>
> ob er gewillt ist oder es sich lohnt sich in etwas anderes
> einzuarbeiten… ist halt aufwändig.

von Peter M. (r2d3)


Lesenswert?

siebert schrieb:
> Hat jemand eine Idee wo das Problem liegen kann?

Wie Du siehst, hast Du bisher Null Hinweise zur Diagnose Deines Problems 
innerhalb Deines Rahmens "Excel" bekommen.

Selbst der Dir gelieferte VBA-Code beantwortet Deine Frage nicht.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Kann gut sein, dass in seinem Fall eine Datenbank keinen Sinn ergibt. 
Lösungen hängen schon ein wenig vom konkreten Problem ab, und wenn davon 
zu wenig bekannt ist...

Peter M. schrieb:
> Über SAP habe ich gelesen, dass die für "in-memory" so ein Extraprodukt
> "Hana"? oder so ähnlich anbieten.

SAP S/4 basiert auf HANA, einem in-memory Datenbanksystem. Das ältere R3 
verwendet klassische Datenbanksysteme. Beide Ansätze haben ihre eigenen 
Probleme.

: Bearbeitet durch User
von Fäzes, der Heilige Stuhl (Gast)


Lesenswert?

Peter M. schrieb:
> siebert schrieb:
>> Hat jemand eine Idee wo das Problem liegen kann?
>
> Wie Du siehst, hast Du bisher Null Hinweise zur Diagnose Deines Problems
> innerhalb Deines Rahmens "Excel" bekommen.
>
> Selbst der Dir gelieferte VBA-Code beantwortet Deine Frage nicht.
Doch: Probleme mit dem Speicher
> Mein Excel ist auch in die Knie gegangen
Beitrag "Re: Excel: If-Else Alternativen"

Da der Thread mit dem VBA-Skript mittlerweile gesperrt ist (super"tolle" 
Leistung der Moderation, so macht Hilfe "Spaß") - hier nochmal:
1
Sub Analyselauf()
2
  Dim rngErgebnisTabelle As Range
3
  Dim rngLeseTabelle As Range
4
  Dim iCalcMerker As Long
5
  Dim iColumn As Long
6
  Dim iRow As Long
7
  
8
  'Das muss von Hand angepasst werden
9
  Const cBereich_LeseTabelle = "A1:B2"
10
  Const cBereich_ErgebnisTabelle = "A5:B6"
11
  Const cVergleichswert = 5
12
13
  'Das Script bezieht sich auf das aktuell geöffnete Sheet
14
  With ActiveSheet
15
  
16
    'Autoberechnung aus
17
    iCalcMerker = Application.Calculation
18
    Application.Calculation = xlCalculationManual
19
    
20
    'Initialisieren
21
    Set rngLeseTabelle = .Range(cBereich_LeseTabelle)
22
    Set rngErgebnisTabelle = .Range(cBereich_ErgebnisTabelle)
23
    
24
    'Müllfilter
25
    If (rngLeseTabelle.Columns.Count <> rngErgebnisTabelle.Columns.Count) _
26
    Or (rngLeseTabelle.Rows.Count <> rngErgebnisTabelle.Rows.Count) Then
27
       MsgBox "Beide Tabellen müssen gleich groß sein", vbCritical
28
       Stop
29
    End If
30
    
31
    'ErgebnisTabelle löschen
32
    rngErgebnisTabelle.Cells = ""
33
    
34
    'ErgebnisTabelle neu bestücken
35
    For iRow = 1 To rngLeseTabelle.Rows.Count
36
      
37
      'Nur fürs Auge: Zeilenwechsel anzeigen
38
      rngErgebnisTabelle.Cells(iRow, 1).Select
39
      DoEvents
40
      
41
      'Zelle in Lesetabelle analysieren und Ergebnis in ErgebnisTabelle schreiben
42
      For iColumn = 1 To rngLeseTabelle.Columns.Count
43
        If rngLeseTabelle.Cells(iRow, iColumn) > cVergleichswert Then
44
           rngErgebnisTabelle.Cells(iRow, iColumn) = 1
45
        Else
46
           rngErgebnisTabelle.Cells(iRow, iColumn) = ""
47
        End If
48
      Next iColumn
49
    Next iRow
50
  End With
51
52
  'Autoberechnung wiederherstellen
53
  Application.Calculation = iCalcMerker
54
End Sub


*****


Numpy (ebenfalls im gesperrten Threadt) sieht aber auch gut aus. Sehr 
gut sogar. Das kannte ich noch gar nicht. Wer über "Kerne" und Cores 
reden will, hat im übrigen nie verstanden, was Excel wirklich ist: Ein 
nettes und meist brauchbares Spielzeug, aber ein sehr kleines.

von Peter M. (r2d3)


Lesenswert?

Hallo Fäzes und siebert,

Fäzes, der Heilige Stuhl schrieb:
> Da der Thread mit dem VBA-Skript mittlerweile gesperrt ist (super"tolle"
> Leistung der Moderation, so macht Hilfe "Spaß")

ich finde das gut!
Warum auch fächert siebert das Thema auf zwei Fäden auf?!

siebert schrieb:
> Da ich momentan mit größeren Dateien [~100MB] arbeite habe ich
> festgestellt, dass Excel ständig hängt und langsam is, obwohl im
> Taskmanager nur 20% CPU und 2GB Arbeitsspeicher-Auslastung angezeigt
> wird.

Wie benimmt sich die Neuberechnungs-Fortschrittsanzeige (zeigt die 
Neuberechnung in Prozent an)?
Wird die Tabelle auch im manuellen Modus ständig neu berechnet?

: Bearbeitet durch User
von Fäzes, der Heilige Stuhl (Gast)


Lesenswert?

Peter M. schrieb:
> ich finde das gut!
Klar findest du das gut ( ^^ )

Peter M. schrieb am 24.08.2018 10:33
Beitrag "Re: Excel: If-Else Alternativen"

24.08.2018 11:38: Verschoben durch Moderator

keine Fragen mehr

von c-hater (Gast)


Lesenswert?

siebert schrieb:

> ich nutze Windows 10 64bit, einen i7-7700, 16GB Arbeitsspeicher und
> Excel 64 Bit.

So what... Der neueste MS-Shice, ist aber immerhin nicht viel schlechter 
als der alte...

> Da ich momentan mit größeren Dateien [~100MB] arbeite habe ich
> festgestellt, dass Excel ständig hängt und langsam is, obwohl im
> Taskmanager nur 20% CPU und 2GB Arbeitsspeicher-Auslastung angezeigt
> wird.
> Zu den Datein: Hauptsächlich If-Else mit verschiedenen VBA-Skripten,
> welche aber nicht der Auslöser sind.
>
>
> Sollte in der 64-Bit variante nicht deutlich mehr Arbeitsspeicher
> verwendet werden können?

Klar, kann es und tut es auch. Aber wieso sollte es in deinem Fall? Wenn 
die verschissene Datei ~100MB groß ist, wird deren Repräsentation im 
Speicher wahrscheinlich sogar viel kleiner sein, nur bei sehr dicht 
besetzten Tabellen konnte sie eventuell größer werden.
Warum sollte also Excel unwahrscheinliche Mengen von noch mehr Speicher 
belegen, wenn es mit ~100MB zur Ablage der Daten im Speicher auskommt? 
Und was sollte das bringen?

> Hat jemand eine Idee wo das Problem liegen kann?

Das Problem kann nur sein: Du hast keine Ahnung. Nicht von Windows, 
nicht von Excel und auch sonst von nix. Das Problem werden wohl die 
VBA-Scripte sein. Egal ob von dir selber verbrochen oder von dir selber 
bloß nicht verstanden.

Warum? Ganz klar: mit einem hinreichend dämlich programmierten Script 
kann man Excel jederzeit komplett unbenutzbar machen. Nur unter 
Benutzung der Excel-Oberfläche muß man hingegen schon Fachmann sein, um 
selbiges zu erreichen.

Und du hörst dich irgendwie nicht wie ein Fachmann an...

von Peter M. (r2d3)


Lesenswert?

Hallo c-hater,

c-hater schrieb:
> Das Problem werden wohl die
> VBA-Scripte sein.

Nein. siebert hat erklärt, dass er den VBA-Code schaltflächengesteuert 
aufruft. Damit entfällt der per Schaltfläche aufgerufene Code als 
Ursache.

Um ganz sicher zu sein, könnte er noch einen breakpoint auf den 
Code-Anfang setzen oder den Befehl "Beep" einfügen.

c-hater schrieb:
> Wenn
> die verschissene Datei ~100MB groß ist, wird deren Repräsentation im
> Speicher wahrscheinlich sogar viel kleiner sein, nur bei sehr dicht
> besetzten Tabellen konnte sie eventuell größer werden.

Hier bin ich im Zweifel.
Die 100MB sind bei Verwendung des xlsx-Formats gepacktes XML, die 
entpackte Binär-Darstellung im Speicher könnte mehr Platz benötigen.
Ich kann das aber im Moment nicht prüfen, weil ich nur ein Uralt-Excel 
zu hause in Betrieb habe.

c-hater schrieb:
>> Hat jemand eine Idee wo das Problem liegen kann?
>
> Das Problem kann nur sein: Du hast keine Ahnung. Nicht von Windows,

Das ist jetzt nicht so zielführend. Die Aussage ist banal und gilt 
immer. Jeder der fragt, hat per Definition keine Ahnung, ich auch.
Wer fragt, erhofft sich Erleuchtung.

Bist Du eigentlich der, der mit dem Rasenmäher über die Artikelsammlung 
gefahren ist?

Beitrag #5534281 wurde vom Autor gelöscht.
von Fäzes, der Heilige Stuhl (Gast)


Lesenswert?

c-hater schrieb:
> Das Problem kann nur sein: Du hast keine Ahnung. Nicht von Windows,
> nicht von Excel und auch sonst von nix. Das Problem werden wohl die
> VBA-Scripte sein. Egal ob von dir selber verbrochen oder von dir selber
> bloß nicht verstanden.
>
> Warum? Ganz klar: mit einem hinreichend dämlich programmierten Script
> kann man Excel jederzeit komplett unbenutzbar machen. Nur unter
> Benutzung der Excel-Oberfläche muß man hingegen schon Fachmann sein, um
> selbiges zu erreichen.

Ich habe oben geschrieben, dass mein Excel auch in die Knie gegangen 
ist. Du kannst gerne mal selbst ausprobieren, großer Meister (...im 
Bäume und Sträucher ausreißen), wie "dein" Excel zu 1000x1000 (1000.000, 
in Worten: eine  Million) Zellen Calculation reagiert. Aber nicht 
wundern, wenn's Mäulchen plötzlich nicht mehr zugeht ( ^^ )

von Peter M. (r2d3)


Lesenswert?

Fäzes,

> Ich habe oben geschrieben, dass mein Excel auch in die Knie gegangen
> ist. Du kannst gerne mal selbst ausprobieren, großer Meister (...im
> Bäume und Sträucher ausreißen), wie "dein" Excel zu 1000x1000 (1000.000,
> in Worten: eine  Million) Zellen Calculation reagiert. Aber nicht
> wundern, wenn's Mäulchen plötzlich nicht mehr zugeht ( ^^ )

ich hatte mal eine ziemlich lange Messreihe, die als einzelne Spalte 
nicht in mein Office 2000 hereinpasste.

In der damaligen Version von LibreOffice reagierte Calc apathisch.
Bau einer Formel in einer weiteren Spalte und Kopieren über die ganze 
neue Spalte hinweg ließ dann LibreOffice crashen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.