Die Berechnung dauert bei großen Datenmengen in Excel ewig

3

Ich habe mein Excel mit der ODBC SQL-Datenbank (SQL Server) verbunden, und jetzt erhält meine Excel-Pivot-Tabelle ihre Daten vom SQL Server VIEW. Es gibt insgesamt rund 1 Million Zeilen aus dem QUERY. Aus den Daten habe ich in Excel neue Spalten erstellt, um Berechnungen durchzuführen. Jedes Mal, wenn ich aus dem Dropdown-Menü in Pivot Table ein Slicing und Dicing durchgeführt habe, müssten die Formeln neu berechnet werden, und die Berechnung dauert etwa 10 Minuten. Gibt es einen effizienteren Weg, dies zu tun, weil ich den Benutzer nicht dazu zwingen kann, 10 Minuten zu warten, bis er die benötigten Daten erhält.

Beratung wird geschätzt.

user1521687
quelle
Benötigen Sie alle zu aktualisierenden Formeln oder nur bestimmte Zellen (falls bearbeitet oder zur Aktualisierung ausgewählt)?
Mat Carlson
3
Die einfache Antwort ist, dass es so ist, wie es ist. Excel sollte eigentlich nicht so viel dynamische Daten verarbeiten (ursprünglich waren es auf 32.000 Zeilen beschränkt, wenn ich mich recht erinnere). Vielleicht möchten Sie überprüfen, wie schnell Ihr DB-Server Daten zurücksendet. Verwenden Sie Wireshark, um zu sehen, wie lange es dauert, bis alle Daten abgerufen werden und ob zwischen den Paketen VOM Server ein langer Abstand besteht. Das kann sehr hilfreich sein, wenn der Server tatsächlich langsam ist. Sie können auch ein Makro erstellen, um alle Daten vom Server in ein Arbeitsblatt zu aktualisieren und dann Daten aus dem Arbeitsblatt zu sammeln (und die automatische Neuberechnung deaktivieren).
Mat Carlson
4
Wenn Sie Excel als Schnittstelle für eine Datenbank verwenden, möchten Sie so viel wie möglich von der Berechnung auf die Datenbank schieben. Kann eine Ihrer Formeln innerhalb der Abfrage berechnet werden? Wenn nicht, wäre es möglich, die Daten, die Sie zum Formulieren der Formeln benötigen, in die Datenbank zu verschieben, damit die Abfrage damit umgehen kann? Gibt es eine Möglichkeit, die Anzahl der Datensätze einzuschränken, die Sie mitbringen? Benötigen Sie alle diese Daten für jede Pivot-Tabellensicht? 1 Million ist furchtbar hoch.
JNevill
3
Ich mache die gleiche Entwicklung. & gt; SQL-Ansicht über ODBC-Verbindung & lt; Ich füge auch Spalten hinzu, die Dinge wie Verkaufspreis und Lookups-Produktgruppen berechnen. Je komplexer Sie bauen, desto länger dauert es. Als Lösung versuche ich, die meisten Berechnungen und zusätzlichen Spalten in SQL VIEW selbst zu erstellen. Ich lasse den SQL Server die harte Arbeit erledigen. nicht Excel
BOB
1
Ich verstehe, dass dies wahrscheinlich daran liegt, dass Excel das ist, was Sie wissen, aber als Programmierer gehen in meinem Kopf so viele Alarmsirenen aus, dass Daten aus einer Datenbank abgerufen und dann in Excel Formeln darauf angewendet werden. Ich nehme an, dass dies auf meine persönliche Meinung zurückzuführen ist, dass alle Tabellenkalkulationen durch relationale Datenbanken ersetzt werden können und dass sie besser organisiert und einfacher zu verwenden sind als Tabellenkalkulationsprogramme. Es gibt keine Möglichkeit, die Berechnungen tatsächlich über SQL durchzuführen. Relationale Datenbanken sind sehr gut für Berechnungen mit großen Datenmengen.
jpmc26

Antworten:

0

Diese Anforderung würde ich mit dem Power Pivot Add-In erfüllen. Es kann Daten aus verschiedenen SQL-Abfragen mit Excel-Tabellen und anderen Quellen kombinieren.

Das resultierende Modell wird komprimiert und für sehr schnelle und skalierbare Pivot-Tabellen im Speicher gehalten. Es gibt Speicherlimits für jeden Prozess mit 32-Bit-Office (was die meisten Leute haben), aber 64-Bit-Office ist nur durch den verfügbaren Arbeitsspeicher begrenzt.

Sie können Berechnungen in Power Pivot mithilfe von DAX-Formeln hinzufügen. Einfache sind vergleichbar mit Standard-Excel-Formeln und verfügen bei Bedarf über mehr Rechenleistung.

Für komplexe Datentransformationsanforderungen greife ich nach dem Power Query Add-In, das Daten transformieren und in das Power Pivot-Modell übertragen kann.

Mike Honey
quelle