Mit Excel auf andere Excel-Dokumente zugreifen & Speicherpla
lima-city → Forum → Heim-PC → Software
abfrage
aktualisierung
arbeiten
datenbank
datum
einlesen
file
glauben
halten
helfen
idee
import
importieren
problem
rechnen
sagen
statement
support
update
url
-
Hallo,
ich nutze dienstlich Excel um Messdaten abzuspeichern. Mit der Zeit sammeln sich recht große Files mit vielen MB Daten an.
Aus diesem Grund hatte ich die Idee meine Auswertung in einem eigenständigen Dokument zusammenzustellen und die erforderlichen Daten aus den einzelnen Dokumenten mittels =Verweis(...) und absoluter Pfadangabe zu suchen und zu importieren. Dieser Teil funktioniert wunderbar.
Einziges Problem: Ich hatte gehofft, dass Excel diese Abfrage entweder beim Öffnen des Dokumentes durchführt oder wenn eine Abfrage aktualisiert wird. Das dürfte zwar auch gemacht werden - dennoch wird das Auswerte-File riesig groß, weil die gesamten Daten (nicht nur die Werte der tatsächlich ausgewählten Zellen) wohl auch im Hintergrund mitgespeichert werden.
Gibt es eine Möglichkeit dieses "mitspeichern" zu deaktivieren und damit die Filegröße moderat zu halten? Die Quelldateien wären stets vorhanden..
Vielen Dank für eure Hilfe!
Beitrag zuletzt geändert: 5.12.2017 15:31:23 von chst -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Vermutlich nicht. Du importiert ja die Dateien alle um dann mit ihnen zu rechnen. Rechnen ohne den Import ist etwas komisch in meine Ohren.
Weil letztendlich werden die Werte ja geladen und stehen dann da in dem anderen Dokument drinnen. Speicherst du das, speichert es ja auch die Werte.
Wie sieht's denn aus das Excel Zeug in eine DB rein und mit der arbeiten?
Beitrag zuletzt geändert: 5.12.2017 16:44:56 von horstexplorer -
Hallo,
du hast Recht, um mit den Daten zu rechnen muss ich sie auch im aktuellen File haben.
Wenn ich aber beispielsweise einen einzigen Wert aus zB 40000 suche, dann möchte ich nicht alle 40000 als Balast mitschleppen und mit abspeichern.
An eine Datenbank hatte ich auch schon gedacht. Jedoch müsste ich dann die vorhandenen Excel-Files nach Aktualisierungen in die Datenbank einlesen, und dann von dort aus wieder einlesen. Außerdem habe ich die Befürchtung, dass die Daten dann auch allesamt zwischengespeichert werden.
Zur Info: Wenn ich im Excel die "Verknüpfungen" lösche, dann hat mein Excel-File plötzlich nur noch 9kB.. -
Musst du mit Excel arbeiten oder kannst du auch gleich die Daten in eine Datenbank abspeichern?
Also Excel ist eben ein Tabellenkalkulationsprogramm und keine Datenbank, daher kann es nicht einfach ein Datum aus vielen nur raus suchen und die anderen ignorieren, es muss immer alle verfügbar halten, um weitere Durchsuchungen durchführbar zu halten.
Ich mag es nicht sagen aber je mehr Daten du ausschließlich mit Excel abarbeitest u,m so komplizierter wird es diese zu verarbeiten. Da kann ab einem gewissen Zeitpunkt nur eine Datenbank helfen. -
An eine Datenbank hatte ich auch schon gedacht. Jedoch müsste ich dann die vorhandenen Excel-Files nach Aktualisierungen in die Datenbank einlesen, und dann von dort aus wieder einlesen. Außerdem habe ich die Befürchtung, dass die Daten dann auch allesamt zwischengespeichert werden.
Also das Auslesen aus einer MySQL Datenbank ist denkbar einfach. Habe ich selbst bei mir am laufen. Wie das ganze via Excel auch in die Datenbank geschrieben werden kann da bin ich noch nicht zu gekommen. Aktuell generiere ich mir aus den zu ändernden Datensätzen ein Insert-Statement und kopiere dann die Spalte und jage es durch die MySQL-Workbench.
Evlt wäre es möglich über einen Excel-Button und dahinter via VBA die Daten in die Datenbank zu schreiben, danach müsste ich aber mal googlen wie und ob das funktioniert. Evlt hat ja auch jmd noch einen anderen Ansatz parat. -
Also Excel in Datenbank ist denkbar einfach!
MySQL: einfach importieren! dabei kann "phpmyadmin" helfen
Man beachte:
- Die Struktur muss gleich sein
- wenn man ein Update macht in der Excel und gleiches Update in der Datenbank, wäre zu empfehlen die Tabelle zuerst zu leeren, um Doppler zu vermeiden
Alternativ:
Du schreibst ein eigenes Script, um die Doppler im Vorfeld einfach ab zu fischen -
Hättest du ein Beispiel parat wenn es so einfach ist :) hab auf die schnelle nix leichtes gefunden Excel -> MySQL ohne vba Code.
Bei einem Update sollten niemals doppelte Datensätze entstehen, sagt ja schon der Begriff "Update" -
Das hat Google ergeben:
https://www.media-web.de/de/knowledgebase/69-mysql/203-mit-phpmyadmin-daten-direkt-aus-excel-importieren.html
Wie gesagt phpmyadmin ist für die Zwecke ideal!
Lima hat auch phpmyadmin, einfach mal probieren. -
Achso, so meinst du das, nun habe ich verstanden was du sagen wolltest. Ja mit PHPMyAdmin geht das natürlich auch aber das wäre ja manuelle Arbeit. Was ich meinte wäre über einen Button alle Felder automatisch zu Updaten/Inserten je nach Bedarf.
Ein Auslesen der Daten aus MySQL habe ich hinbekommen, nur an ein Insert/Update Statement hab ich mich noch nicht ran gemacht. -
Ich glaube man kann das auch mehr oder weniger direkt in MySQL importieren:
https://stackoverflow.com/questions/1310166/how-to-import-an-excel-file-in-to-a-mysql-database
Oder alternativ von Excel zu Access zu SQL
https://support.office.com/en-us/article/Move-data-from-Excel-to-Access-90c35a40-bcc3-46d9-aa7f-4106f78850b4
https://docs.microsoft.com/de-de/sql/ssma/access/sql-server-migration-assistant-for-access-accesstosql
//Edit
Man kann natürlich auch das Zeug Spaltenweise in Arrays pressen und die dann mit PHP in die DB hochschieben.
Beitrag zuletzt geändert: 5.12.2017 22:27:57 von horstexplorer -
Hmm also für mich scheint diese Lösung nicht praktikabel zu sein dann kann ich genauso mein Excel so bearbeiten das es mir Update-Statements zusammenbaut und ich diese dann nur kopiere und in PHPMyAdmin oder überdie MySQL-Workbench einfüge und dann jede Zeile ausführe. Damit komme ich zu den gleichen Ergebnissen wie dein Beispiel.
Ich glaube man kann das auch mehr oder weniger direkt in MySQL importieren:
https://stackoverflow.com/questions/1310166/how-to-import-an-excel-file-in-to-a-mysql-database
Werde mal die Tage an meiner Excel rumprobieren das diese die Daten mit der DB Synchronisiert ohne diese ständigen manuellen kopiererein und einfügereien. -
chst schrieb: ....
Wie wäre es denn, wenn Du nur Werte statt Formeln in eine eigenständige Tabelle kopierst und diese dann abspeicherst? Siehe https://support.microsoft.com/de-ch/help/509190 -
Hallo,
danke euch allen für eure Tipps! Ich habe inzwischen versucht die unterschiedlichen Varianten und Ideen nachzuvollziehen und zu testen.
Die Variante alle Daten in eine Datenbank zu kopieren funktioniert. Dabei habe ich aber das Problem, dass die Generierung zur Ergänzung/Korrektur meiner Daten in die Datenfiles via Matlab passiert und recht langwierig ist. Angenehm wäre es, wenn ich diese Daten dann nicht jedes Mal via phpMyAdmin und Co einlesen müsste.
Was ich inzwischen jedenfalls herausgefunden habe: Ich kann ohne Probleme auf die Daten in einem Excel-File zugreifen und damit arbeiten. Um die auswertende Datei auf eine vernünftige Größe zu schrumpfen kann ich nach dem Import via "Daten - Verbindungen - Verknüpfungen bearbeiten" alle Verbindungen abbrechen - das File speichert dann nur die tatsächlich benötigten Daten. Allerdings lässt sich dieser Verbindungsabbruch nicht mehr rückgängig machen..
Falls also noch jemand eine Idee hat, mit welcher Einstellung diese Sicherungskopie unterbunden wird, dann würde mir das sehr helfen.
Andernfalls vielen Dank für eure Tipps! -
Selbiges Verfahren wende ich aktuell auch an, habe eine MySQL-DB und LESE die Daten aus dieser in ein Excel-Sheet.
Habe folgende Anleitung gefunden https://dev.mysql.com/doc/mysql-for-excel/en/mysql-for-excel-edit.html die ich demnächst auch mal ausprobieren möchte. Evlt hilft dir das bei einem deiner Probleme auch. Das mit den Sicherungskopien da kann ich grade leider nichts zu sagen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage