nomadd9
Goto Top

CSV Liste in Excel einlesen und daraus Werte berechnen

Hallo alle miteinander,

ich habe mehrere Listen im CSV-Format die Messdaten beinhalten, aus denen ich in Excel mittels einer Formel Werte berechnen möchte.
Die Listen beinhalten jeweils mehrere Messungen.
Die Messungen sind alle untereinander in der CSV aufgelistet(wie unten dargestellt) . Ich möchte mittels VBA ein Makro erstellen, womit ich einfach die Liste auswähle(evtl. Button) und Excel mir für die Messwerte aller Messungen aus einer Liste in der gleichen Reihenfolge die Ergebnisse mittels einer Physikalischen Formel berechnet.
So in der Form sieht eine Liste aus, aber natürlich mit viel mehr Werten als hier :/
bestehend aus 2 Spalten:
x y
1 ….
2 ….
3
4 …
5 .
6 .
7 .
.
.
.
.
.
99xxxx …..


x y
1 .
2 .
3 .
4 …
5 ..
6 ..
7 ….
.
.
.
.
.
99xxxx …..

Das würde mir eine menge Arbeit ersparen, da es sich um 2GB große Datensätze handelt.
Die durch Excel errechneten Werte muss ich dann noch weiterbenutzen um weitere Werte auszurechnen. Somit wäre es vllt gut wenn man die Ergebnisse auch als CSV Liste ausgibt. Dann würde ich noch eine Excel Datei erstellen wo ich nur die Formel ändere und mit der neuen CSV mit den errechneten Werten weiter mache.
Das wäre ein Heidenaufwand ohne VBA und würde wahrscheinlich Tage dauern.

Ich hoffen jemand kann mir da weiterhelfen.... ich bin über jede Hilfe unglaublich dankbar!

Content-Key: 1544238364

Url: https://administrator.de/contentid/1544238364

Printed on: April 25, 2024 at 00:04 o'clock

Member: MirkoKR
MirkoKR Nov 23, 2021 at 16:32:41 (UTC)
Goto Top
Hi

ICH bin ja da eher Access-favorisiert
Hier würde ich die beiden Tabellen als externe Datenquellen verknüpfen und dann mit Abfragen, Berichten, etc. weiter verarbeiten.

Durch die Verknüpfung wären die Ergebnisse stets aktuell


Allerdings kannst du auch in Excel z. B. 2 Tabellenblättern je eine Tabelle verknüpfen und in weiteren Tabellenblättern mit den Daten weiterarbeiten.

Ich finde da Access aber deutlich flexibler ..


.
Member: nomadd9
nomadd9 Nov 23, 2021 at 16:43:40 (UTC)
Goto Top
Danke für die Antwort.

Mit Access habe ich leider noch nie gearbeitet und weiß daher nicht in wie weit das bei meinem Problem möglich wäre. Ich würde mich zwar da rein fuchsen aber ich habe die Zeit leider gar nicht face-sad

Also die CSV Listen haben über 64.000 Zeilen mit Messwerten. Daher weiß ich jetzt nicht ob Access die Lösung ist oder eher doch Excel.
Member: MirkoKR
MirkoKR Nov 23, 2021 at 16:59:03 (UTC)
Goto Top
Zitat von @nomadd9:

Mit Access habe ich leider noch nie gearbeitet und weiß daher nicht in wie weit das bei meinem Problem möglich wäre. Ich würde mich zwar da rein fuchsen aber ich habe die Zeit leider gar nicht face-sad

Egal, welche Lösung du anwendest. diese muss entwickelt werden und bedarf somit Zeit.
Deine Erkenntnisse fördern künftige Zeit-Ersparnisse.


Also die CSV Listen haben über 64.000 Zeilen mit Messwerten. Daher weiß ich jetzt nicht ob Access die Lösung ist oder eher doch Excel.

Naja, wenn Excel an der Menge der Daten schnaubt, juckt Access sich an der Nase ...

Als Alternative bieten sich bei einer Einzellösung Powershell-Skripte an

Unsere PS-Profis hier schreiben ein
Import-Verarbeitung-Ausgabe - Skript sicher aus dem StehGreif -

aber damit hast DU zwar eine Lösung, aber zum Verstehen/Weiterentwickeln Bedarf es auch hier wieder der Zeit ...

Jedenfalls wäre dieses PS-Skript längst fertig, bevor Excel oder Access gestartet wären.

Excel und Access bieten aber die Vorteile, einfacher Präsentationen für den Chef darauf bauen zu können - auch wieder Relativ.

Das Ergebnis eine PS-Skripts lässt sich schnell in Präsentationen nutzen ...

.
Member: PeterleB
PeterleB Nov 23, 2021 updated at 20:57:34 (UTC)
Goto Top
Hallo,

allein hier im Administrator Forum gab es schon tausende Fragen zum CSV-Import in Excel, teilweise auch mit Lösungen markiert.
Eine fertige Lösung wird Dir niemand anbieten, aber wenn Du recherchierst und Dich selbst reinfitzt, hilft Dir jeder.
Öffne Excel, starte eine Makroaufzeichnung und importiere Deine Datei nach den vorgegebenen Schritten.
Nach der Aufzeichnung hast Du ein VBA-Grundgerüst, das man mit ein wenig VBA-Learning nach seinen Bedürfnissen anpassen kann.
Und wenn's da nicht weiter geht, bekommst Du auf jeden Fall hier mehr Unterstützung.
Das habe ich selbst schon oft erlebt.

Gruß
Peter

PS: z. Bsp. Excel CSV Import
Member: em-pie
em-pie Nov 23, 2021 at 20:57:11 (UTC)
Goto Top
Moin,

Hier empfehle ich dir, von Excel Abstand zu nehmen und Tools wie Knime zu nutzen.

Du baust dir einen Workflow, kannst Daten korrelieren/ berechnen lassen und den Output wieder als CSV abspeichern. Den Task kannst du dann manuell anstoßen.

Gruß
Em-pie
Member: erikro
erikro Nov 23, 2021 at 22:13:24 (UTC)
Goto Top
Moin,

Zitat von @nomadd9:
ich habe mehrere Listen im CSV-Format die Messdaten beinhalten, aus denen ich in Excel mittels einer Formel Werte berechnen möchte.

Endlich mal einer, der Excel für das benutzen will, wofür es gemacht wurde. face-wink

Die Listen beinhalten jeweils mehrere Messungen.

Ja und?

Die Messungen sind alle untereinander in der CSV aufgelistet(wie unten dargestellt) .

Auch kein Problem.

Ich möchte mittels VBA ein Makro erstellen, womit ich einfach die Liste auswähle(evtl. Button) und Excel mir für die Messwerte aller Messungen aus einer Liste in der gleichen Reihenfolge die Ergebnisse mittels einer Physikalischen Formel berechnet.

Wozu VBA? Excel ist eine Tabellenkalkulation. Ich kenne keine Formel, die man nicht in Excel darstellen könnte. Excel kann afaik alles, was die Mathematik so zu bieten hat. Wenn das dann regelmäßig gemacht werden muss, dann macht man sich eine Vorlage, in die man die Daten dann reinwirft.

Die Frage ist also: Wie lautet denn die Formel?

Liebe Grüße

Erik
Member: nomadd9
nomadd9 Nov 24, 2021 updated at 12:02:53 (UTC)
Goto Top
Danke erstmal für die Antworten.
Ich glaube es wurde nicht deutlich, dass ich die CVS Daten nicht importieren will in eine Excel.

Zitat von @PeterleB:
allein hier im Administrator Forum gab es schon tausende Fragen zum CSV-Import in Excel, teilweise auch mit

Es soll keine CSV in die Excel importiert werden. Ihr habt recht es gibt einen Haufen Lösungen dazu.
Was ich möchte ist, dass Mittels VBA die Excel sich lediglich die Daten aus den CSV Dateien holt, um mit diesen Daten zu rechnen.
In der Excel soll dann nur das Ergebnis aller Messdaten aus der CSV ausgegeben werden.


Zitat von @erikro:
Wozu VBA? Excel ist eine Tabellenkalkulation. Ich kenne keine Formel, die man nicht in Excel darstellen könnte. Excel kann afaik alles, was die Mathematik so zu bieten hat. Wenn das dann regelmäßig gemacht werden muss, dann macht man sich eine Vorlage, in die man die Daten dann reinwirft.

Auch das weiß ich. Mein Problem ist nicht die Formel zu berechnen oder auszugeben.
Sagen wir die Daten in der CSV sind Variablen, die ich in einer neuen Excel Datei in die Formel einsetzen möchte. Soweit ist alles easy.
Was ich mir aber durch VBA erhoffe ist, dass ich mir Arbeit erspare. Denn ich habe 64.000 Messdaten(Varablen) in einer CSV Datei, die immer wieder in die Formel eingesetzt und ausgegeben werden müssen. Und wie gesagt das sind mehrere CSV Dateien die insgesamt 2GB groß sind.

Ich möchte also das ganze automatisieren, in dem ich einfach durch ein VBA Script die CSV Datei nur auswählen brauch und mir alle Werte in der Excel Datei ausgegeben werden.
Member: MirkoKR
MirkoKR Nov 24, 2021 at 12:23:08 (UTC)
Goto Top
In dem Moment, wo Excel-VBA damit rechnet, hast du die doch schon importiert - auch wenn du die nicht einzeln in Zellen gepackt hast.

Nach deiner letzten Beschreibung - die immernoch Recht schwammig scheint- solltest du von Excel-VBA Abstand nehmen, so wie du es darstellst.

Deine Berechnungen solltest du dann mit anderen Tools vorbereiten: Powershell, Knime, ... und das daraus berechnete Ergebnis weiterverarbeiten ...
... Würde ich auf Basis dessen, was wir JETZT wissen Mal so empfehlen ...

.
Member: erikro
erikro Nov 24, 2021 at 12:38:42 (UTC)
Goto Top
Moin,

Zitat von @nomadd9:
Zitat von @erikro:
Wozu VBA? Excel ist eine Tabellenkalkulation. Ich kenne keine Formel, die man nicht in Excel darstellen könnte. Excel kann afaik alles, was die Mathematik so zu bieten hat. Wenn das dann regelmäßig gemacht werden muss, dann macht man sich eine Vorlage, in die man die Daten dann reinwirft.

Auch das weiß ich. Mein Problem ist nicht die Formel zu berechnen oder auszugeben.

Das war tatsächlich ein Missverständnis. face-smile Wo kommen die Daten denn her? Aus einer Datenbank? Über die ODBC-Schnittstelle kannst Du die Daten aus fast jeder DB direkt in Excel einlesen. Wäre das eine Lösung?

Liebe Grüße

Erik
Member: MirkoKR
MirkoKR Nov 24, 2021 at 12:53:02 (UTC)
Goto Top
Zitat von @erikro:

Wo kommen die Daten denn her? Aus einer Datenbank? Über die ODBC-Schnittstelle kannst Du die Daten aus fast jeder DB direkt in Excel einlesen. Wäre das eine Lösung?

Wobei du wahrscheinlich die Vorstufe meinst:
- welche Quelle generiert die CSVs
- kann man direkt auf die Quellen zugreifen?

?
Member: erikro
erikro Nov 24, 2021 at 12:54:23 (UTC)
Goto Top
Zitat von @MirkoKR:

Zitat von @erikro:

Wo kommen die Daten denn her? Aus einer Datenbank? Über die ODBC-Schnittstelle kannst Du die Daten aus fast jeder DB direkt in Excel einlesen. Wäre das eine Lösung?

Wobei du wahrscheinlich die Vorstufe meinst:

Ja klar. Wenn ich direkt zugreife, kann ich mir den Umweg über CSV sparen.
Member: nomadd9
nomadd9 Nov 24, 2021 at 13:19:34 (UTC)
Goto Top
Ich habe die Daten so bereitgestellt bekommen als txt Dateien. Ich habe die danach in eine CSV eingepflegt.
Das ist meine einzige Quelle :'D


Zitat von @MirkoKR:
Deine Berechnungen solltest du dann mit anderen Tools vorbereiten: Powershell, Knime, ... und das daraus berechnete Ergebnis weiterverarbeiten ...
... Würde ich auf Basis dessen, was wir JETZT wissen Mal so empfehlen ...

Ja gut wenn das so ist, dann muss ich das wohl manuell machen oder eben durch Makros aufzeichnen haha.
Ich hab leider wenig Zeit, daher kann ich nicht anfangen Powershell zu lernen... :/
Meine Kenntnisse sind auch nicht so ausgeprägt. Dachte mir nur es gibt vielleicht eine einfache Methode um unnötige Arbeit zu sparen.
Vorgabe ist auch leider dass ich mit Excel oder Python arbeite. Excel kennt man ja und Python habe ich mir angeschaut. Das ist viel zu viel was ich nicht kann und nachholen muss. Deshalb dachte ich nimmst mal lieber Excel. ^^

Nur mal so interessehalber, ist Powershell/Knime einfach zu lernen ? Bzw. kann man das schnell verstehen ?
Member: em-pie
em-pie Nov 24, 2021 at 13:37:53 (UTC)
Goto Top
Nur mal so interessehalber, ist Powershell/Knime einfach zu lernen ? Bzw. kann man das schnell verstehen ?

Das kommt darauf an, was deine Berechnung machen soll.

Bei Knime hab ich in ca. 1 Tag zwei Datenquellen angezapft (Datenbanken), die Daten in eine (virtuelle) Tabelle migriert, miteinander korrelieren lassen und das Ergebnis in eine andere DB sowie eine CSV/ Excel schreiben lassen...

Den Workflow mit den Nodes hat man schnell zuammengeklickt. Und je nachdem, was du da für eine Berechnung anstellen willst, ist das auch kein Hexenwerk.
Member: MirkoKR
MirkoKR Nov 24, 2021 at 13:43:36 (UTC)
Goto Top
Die "Einfachheit" ergibt sich, das z.B. PS-Skripte beim Ausführen
bestimmte Quelldateien einlesen,
deren Inhalte nach Wunsch verarbeiten
und gewünschte Ausgaben in Dateien schreiben - mit denen man weiterarbeiten kann.

Beim Aufruf könntest du die Quelldatei und Zieldatei angeben.

Einmal erstellt - immer wieder verwendet!

Das Ganze LEBT - soll heißen, das aus dem Gelernten Erkenntnisse entstehen, mit denen man seine Skripte modifiziert und das Ergebnis verbessert und die Abarbeitung beschleunigt.

Sobald du hier Verbesserungen erzielt, hat sich jedwede Entwicklung imm Bezug auf deine verfügbare Zeit gelohnt - weil: Zeit nachhaltig gespart.

ICH bevorzuge Access
Und damit komme ich nochmal darauf zurück, warum 8ch bei sowas eine Access-DB anlege, die CSV als externe Quellen verknüpfen und die Daten in Access bearbeite ..

Das Verknüpfen ist Minutensache, über Abfragen kann ich schnell Ergebnisse generieren - und zum Bericht es auch nicht weit. Und: Einmal erstellt; wieder verwendet.

Aber: bei deinen Zielen sind Skripte wohl am schnellsten ...

.