Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

bereich.verschieben / geht es besser?

bereich.verschieben / geht es besser?
12.07.2014 09:36:31
Gabriel
Guten Morgen an Euch,
ich habe ein Problem, bei dem ich nicht weiter komme. Da ich hier schon viel von Euch gelernt habe, wende ich mich direkt an Euch.
Ich arbeite mit großen Tabellen und dynamischen Daten.
Zur besseren Auswertung habe ich im Namens-Manager den Spalten entsprechende Namen und den Klassiker "bereich.verschieben" vergeben:
=BEREICH.VERSCHIEBEN(sfdc_data!$L$2;;;ANZAHL2(sfdc_data!$A:$A))
Von diesen habe ich recht viele und wende diese Namen in sehr vielen Zellen an.
Hier ein Beispiel:
=(SUMMENPRODUKT((sfdc_product_name=$B6)*(sfdc_s3_year=$F$4)*(sfdc_scheduled_year=$F$5) *(sfdc_s3_check=WAHR)*(sfdc_sales_usd))/1000)
Ich verknüpfe damit Zahlen und Namen. Leider ist diese "bereich.verschieben" Funktion eine regelrechte Systembremse, vor allem, wenn sich die Datenbank vergrößert.
Von VBA her arbeite ich oft mit Befehlen um die letzte Datenreihe zu ermitteln und überlege nun, ob man diese Ermittlung nicht in die "bereich.verschieben" Funktion integrieren kann, sprich ob man das nicht an Stelle des $A:$A in die Formel bringen kann.
Über eine Idee oder bessere Idee würde ich mich sehr freuen.
Danke und viele Grüße.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit INDEX() ... aber ...
12.07.2014 10:11:21
der
Hallo Gabriel,
... die gleiche Matrix wie Deine BEREICH.VERSCHIEBEN()-Formel liefert: =sfdc_data!$L$2:INDEX(sfdc_data!$L:L;ANZAHL2(A:A)+1)
wobei darin die 1 für =ZEILE(sfdc_data!$L$2)-1 steht.
Zu INDEX() sieh mal hier: http://www.online-excel.de/excel/singsel.php?f=180
Zu BEREICH.VERSCHIEBEN() sieh mal hier: http://www.online-excel.de/excel/singsel.php?f=41
aber auch hier :https://www.herber.de/forum/messages/1369834.html
Gruß Werner
.. , - ...

Anzeige
AW: bereich.verschieben / geht es besser?
12.07.2014 10:15:37
Nepumuk
Hallo,
nicht nur BEREICH.VERSCHIEBEN, auch deine Matrixformeln (SUMMENPRODUKT ist eine Matrixformel die ohne geschweifte Klammern auskommt) sind wahre Performancekiller.
Alleine die eine gezeigte Formel muss bei nur 100 Datenzeilen 100*100*100*100*100 = 10.000.000.000 Berechnungen durchführen. Und das mal 100 für 100 Formeln in der Tabelle.
Das Ganze ohne Formeln per VBA zu machen ist wahrscheinlich wesentlich effektiver. Denn da komme ich für diese Formel bei 100 Datenzeilen auf 100 Schleifendurchläufe. Wenn du in der Schleife das Kriterium mit der geringsten Übereinstimmungswahrscheinlichkeit als erstes abfragst, reduzierst du Abfragen die in der Schleife gemacht werden müssen zusätzlich.
Ich schätz mal (kenne deine Mappe nicht) dass das durchrechnen von diesen 100 Formeln in einer Factoryclass nicht länger als 200 Millisekunden dauert.
Siehe dazu: http://de.wikipedia.org/wiki/Fabrikmethode und http://www.office-loesung.de/ftopic641735_0_0_asc.php
Gruß
Nepumuk

Anzeige
AW: bereich.verschieben / geht es besser?
12.07.2014 13:05:50
Gabriel
Vielen Dank für Eure Antworten Nepumuk und Werner,
ich werde mir die Matrix mal ganz in Ruhe ansehen.
Die Idee, alles mit VBA zu lösen hatte ich auch schon, ich wollte nur den Kollegen, die mit den Tools arbeiten, ein wenig Chance lassen das zu verstehen was die Tabellen anzeigen.
Euch ein schönes WE. Gabriel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige