Excel csv Datei importieren und bearbeiten
#1
Hallo,

ich arbeite gerade an einem Code mit dem man eine csv Datei in eine Excel Datei einlesen und bearbeiten kann. Der Code den ich hab funktioniert auch. Ich möchte jetzt gerne noch etwas hinzufügen, meine Versuche scheiterten aber leider. Deswegen möchte ich mich gerne an euch wenden.

Es soll so funktionieren: In meiner csv Datei befinden sich sehr viele Informationen und ich benötige nicht alle. Nach dem Import steht alles schön aufgeteilt auf einem Excel Blatt. Interessant für mich sind die Spalten B, C, D, E und H. 
Was noch nicht so ganz funktioniert: Aufgeteilt werden soll nach Komma (,) und nach Bindestrich (-), aber der erste Bindestrich (-) soll ignoriert werden. Ich könnte jetzt jedes Zeichen, jeden Strich (-) durch ein Komma ersetzen (,) so mache ich es und am Ende füge ich den Strich wieder ein, an der Stelle an der er eigentlich stehen soll (Spalte C). Das könnte man bestimmt auch mit dem Code machen. Ich habs versucht, geklappt hats leider nicht so recht.

Das andere ist:
Kann ich jeweils eine dieser Spalten einem Array zuweisen und weiter bearbeiten? Ziel soll eine schnellere Makrolaufzeit sein. In diesen Spalten befinden sich noch einfache Leerzeichen, doppelte Leerzeichen, Strichpunkte (;) und andere Zeichen die ich gerne entfernen möchte. Ich weiss dass das sehr gut mit dem Makrorekorder geht (so mache ich es im Moment), aber ich wollte fragen ob es nicht noch eine andere Lösung gäbe. Hier ist eine Beispiel Datei:

Ich würde mich über ein paar Tipps sehr freuen.


.xlsm   Beispiel.xlsm (Größe: 23,69 KB / Downloads: 3)

.csv   CSV file.csv (Größe: 446 Bytes / Downloads: 8)

Gruß
Top
#2
Hallo Matthias,

habe mir jetzt mal nur die csv angeschaut. Gibt es da keine Möglichkeit, das Du die Daten korrekt bekommst? Mal sind Felder mit Komma getrennt, mal mit Bindestrich. Kann es sein, dass bei der Anne-Mette der Nachname statt mit Bindestrich mit Komma getrennt ist? ... Bei der Anita sind darüber hinaus zu viele Informationen drin, bei den anderen fehlen ggf. einige.

Um das zweite Auftreten eines Zeichens zu ermitteln, kannst DU INSTR verschachteln.
Im Prinzip so:
INSTR(INSTR(1,zeichenkette, suchzeichen)+1),zeichenkette, suchzeichen)

Zum anderen
Ich glaube, in dem Fall ist das Suchen & Ersetzen schneller, kann man auch aufzeichnen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Moin Matthias,
ich sehe da 2 Möglichkeiten (beide ohne Lösung):
1. Entweder die *.csv ist vom Aufbau her in der Form echt, dann gehört sie geschreddert und der Ersteller sollte einmal einige Basics in Sachen Datenverarbeitung lernen.
2. Du hast beim anonymisieren selber Hand angelegt und ein paar dicke Macken eingebaut ...

Fazit aus meiner Sicht: SO lässt sich das File nicht sinnvoll verarbeiten, zumindest nicht maschinell. Es ist auch keine "echte" CSV sondern (sorry) Datenschrott. Ich habe ja nicht unbedingt etwas dagegen, dass gemischte Trenner verwendet werden; aber wenn schon, dann konsequent.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#4
Ich wundere mich immer über jegliche fehlende Logik beim TE in solchen Fällen.
Top
#5
Hallo snickers,

Spricht da jetzt die Diva?
Ich wundere mich immer über solche Antworten.

Der TE schreibt, dass er eine csv hat und nicht, dass er sie erzeugt hat. Ob die Logik da beim TE fehlt, da stehen die Chancen 50:50 und da würde ich den TE nicht gleich angehen - wenn überhaupt, was meiner Mentalität aber widerspricht - den unbekannten Erzeuger der csv.
Zuweilen bekommt man ja auch eine csv und kann gar nix dafür. Immerhin hat er lt. seinem Beitrag ja schon einen gewissen Stand der Verarbeitung erreicht und braucht nur noch für zwei Dinge Tipps - logisch Smile.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#6
Danke für die Antworten, ja es ist eine normale csv Datei. Nach der Aufteilung stehen in manchen Spalten Wörter die z. B. durch einen Punkt getrennt sind und die ich gerne nochmals auf 2 Spalten aufteilen möchte. Das ist alles. Die beiden Wörter am Anfang, (es ist wirklich nur eine Beispiel Datei und ja ich habe sie ein wenig verändert) sollen einfach in einer Spalte (A) stehen. Das wollte ich damit zeigen. Dieses Trennzeichen der Bindestrich kommt aber in einer anderen Spalte nochmal vor, hier möchte ich eine Aufteilung auf 2 Spalten. Es geht hier um einzelne Wörter und ich möchte es einfach nur übersichtlich haben.
Top
#7
Ich gehe davon aus, dass das machbar ist. ABER: -> Schau mal hier ...  Undecided
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#8
Versteh ich jetzt nicht, warum denkst du dass meine Orginal Datei komplett anders aussieht? Alles was wichtig ist hab ich erklärt. Sag mir bitte warum du denkst dass deine Vorschläge, wenn sie in meiner Beispiel Datei funktionieren im Papierkorb landen weil ja meine Orginal Datein angeblich anders aussieht? Das wichtigste ist aber da darum geht es mir.
Top
#9
Moin Matthias,
Zitat: (es ist wirklich nur eine Beispiel Datei und ja ich habe sie ein wenig verändert) 

... hat mich zu dem Schluss kommen lassen.
Ich nehme mal die ersten beiden Spalten:
Code:
Title-First Name,Middle Name-Last Name
Spaltentrenner: Komma 
Du willst jetzt den "-" als zusätzlichen Trenner nehmen (soweit OK).
Und jetzt die ersten beiden Spalten Daten:
Code:
Anita-Jorgensen,Contoso-555-555-1212
Anne-Mette,Olesen-Contoso
Bei Spalte_A klappt das ja, bei Spalte_B ... ? In der Überschrift ist ein "-", in den Daten sind es 2. Und so etwas lässt mich sehr stutzig werden.

Sollte ich mich getäuscht gaben und du hast wirklich "sauber" anonymisiert nehme ich meinen Hinweis/Link selbstverständlich gerne zurück.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#10
Ja beim anonymisieren hab ich das übersehen, kann passieren tut mir leid. Aber trotzdem sollte das was ich vorhabe schon zu verstehen sein.

Habs korrigiert: 
.csv   CSV file.csv (Größe: 350 Bytes / Downloads: 3)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste