Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

schnellere Formel?

schnellere Formel?
22.12.2016 09:24:02
snewi133

Hallo, ich benutze über einen grossen Zellenbereich folgende Formel:


=WENNFEHLER(INDEX(Soll!$A$1:$BV$30;VERGLEICH($A15;Soll!$A$1:$A$30;0);VERGLEICH(D$13;Soll!$A$1:$ _
BV$1;0));"")
Das verlangsamt das Excel-Sheet enorm! Gibt es da eventuell was schnelleres?
Gruss

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: schnellere Formel?
22.12.2016 09:30:45
ransi
Hallo,
=zählenwenn() ?
ransi
AW: schnellere Formel?
22.12.2016 09:34:12
snewi133
Ja keine Ahnung!! Wie sieht die Formel aus dann würde ich es mal testen! ;.)
Gruss
AW: günstigere Datenstruktur möglich? ...
22.12.2016 09:51:40
... neopa C
Hallo snewi123,
... ich kann mir nicht wirklich vorstellen dass diese Formel "das verlangsamt das Excel-Sheet enorm!"
Aber Du könntest aber die Geschwindigkeit deren Auswertung steigern, wenn Du die Werte der Suchmatrix für den VERGLEICH()-Formelteil aufwärts sortieren kannst. Dann nutze anstelle der 0 im 3. Argument die 1
Gruß Werner
.. , - ...
VERGLEICH(;1) statt VERGLEICH(;0), oder
22.12.2016 09:58:12
lupo1
Prüfe mit Datengültigkeit A15:Ax und D13:x13 schon VORHER, ob die Werte mit den Titeln in Soll! exakt übereinstimmen - denn das wolltest Du ja aufgrund Deines ;0 sicherstellen. Stelle es lieber vorher sicher!
Sie müssen dann auch sortiert sein.
VERGLEICH(...;1) wird die Neuberechnung um Größenordnungen beschleunigen.
Falls immer noch langsam, würde ich die Formeln plattmachen und nur über VBA temporär ersetzen (oder manuell ausgehend von einer in D15 übrig behaltenen überkopieren und wieder plattmachen).
Anzeige
Nachtrag zu "sortiert sein"
22.12.2016 10:00:33
lupo1
Damit meinte ich nur die Titel-Werte in Soll!A:A und Soll!1:1.
In Deiner Zieltabelle können Spalte A und Zeile 13 unsortiert sein.
Man könnte den Vergleich auslagern
22.12.2016 09:59:02
RPP63
Moin!
Ohne Kenntnis der Datei:
Wenn Du die Vergleiche in eine Hilfszeile/spalte auslagerst und in Index darauf zugreifst, muss Excel nicht bei jeder Berechnung in ALLEN Zellen den Vergleich durchführen.
Gruß Ralf
Guter Tipp!
22.12.2016 10:04:05
lupo1
Mit Auslagern meint RPP63, dass in der Zieltabelle
über/unter der Zeile 13 der VERGLEICH nach Soll!1:1 und
links/rechts Spalte A der VERGLEICH nach Soll!A:A
einmalig fix steht. Dann gehst Du mit INDEX auf genau diese Zelle, statt überflüssig neu zu VERGLEICHen.
Anzeige
Zeitersparnisberechnung dazu
22.12.2016 10:10:19
lupo1
Mit Deiner bisherigen Lösung wurden bei einem quadratischen Formelbereich mit n^2 Zellen auch n^2 Berechnungen angestellt.
Jetzt sind es mit RPP63 nur noch n*2.
Statt vorher 250.000 also nur noch 1.000 (bei n=500).
Zeitersparnisberechnung (Korrektur)
22.12.2016 10:12:35
lupo1
Das war falsch, da pro Formel 2 VERGLEICHe. Also:
2*n^2 = 500.000 Berechnungen vorher
2*n*2 = 2.000 Berechnungen nachher
AW: Guter Tipp!
22.12.2016 10:34:34
snewi133
Hallo, das habe ich nicht so richtig verstanden was genau zu tun! ;.-(
Gruss
Ich schrieb oben
22.12.2016 10:40:55
RPP63
Ich schrieb: "Ohne Kenntnis der Datei"
Gruß Ralf
Hier ein Beispiel zum Verstehen
22.12.2016 11:31:05
lupo1

Sub DemoAusgelagerterVERGLEICHe()
'Diesen Code komplett markieren, Strg-C, Alt-F11, Einfügen Modul, Strg-V, F5
[A1:E1] = Array("", 1, 2, 4, 5)
[A2:A6].FormulaArray = "={""A"";""B"";""D"";""F"";""G""}"
[B2:E6].FormulaArray = "=ROW()^2+COLUMN()^2"
[H2:K2] = Array("", 4, 2, 5)
[H3:H5].FormulaArray = "={""G"";""B"";""F""}"
[A1:K6].Value = [A1:K6].Value
[I1:K1].FormulaR1C1 = "=MATCH(R[1]C,R1C2:R1C5)"
[G3:G5].FormulaR1C1 = "=MATCH(RC[1],R2C1:R6C1)"
[I3:K5].FormulaR1C1 = "=INDEX(R2C2:R6C5,RC7,R1C)"
[I1:K1,G3:G5,I3:K5].Interior.ThemeColor = xlThemeColorAccent3 'xl2010
End Sub

Anzeige
AW: Hier ein Beispiel zum Verstehen
22.12.2016 14:55:18
snewi133
Ok verstanden! Danke ist schon gefühlt schneller geworden :-)
Gruss
P.S. also gibt es nur diese umständliche Lösung und keine andere Formel?
Gruss
Verstanden ...
22.12.2016 16:05:51
lupo1
... hast Du das ganze bei so einer Frage dann ja wohl nicht.
Bei diesem kleinen Beispiel ist die Einsparung gering:
Nur 6 Vergleiche in den Titeln überhaupt
statt 18 Vergleichen in den 9 Datenfeldern.
Du solltest eigentlich jetzt verstanden haben, dass Du x-fach in Deiner Tabelle die gleichen VERGLEICHe gerechnet hattest, und die auch noch in der ungünstigen ;0-Form.
Ohne Hilfszellen klappt das ganze nur über VBA.
Anzeige
AW: schnellere Formel?
22.12.2016 10:06:00
Rainer
Hallo Snewi,
Formel brauchen Zeit, viele Formel brauchen viel Zeit.
Schau dir mal diesen Beitrag an:
https://www.herber.de/forum/archiv/1528to1532/t1531199.htm#1531199
Ich hatte ein ähnliches Problem und habe es (dank Werners Hilfe) lösen können. Der Bereich mit den vielen Formeln ist ein eine zweite Tabelle ausgelagert, welche nur noch auf Knopfdruck berechnet wird. So kann man in der ersten Tabelle alle Eingaben machen, ohne dass Excel im Hintergrund loslegt und rechnet.
Gruß,
Rainer

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige