Frage

Hintergrund: Ich muss eine CSV -Datei meines Bankergebnisses für die Verwendung in einem Online -Finanzberichterstattungstool aufräumen.

Die Transaktionen befinden sich alle in den folgenden Formaten (Spalten, die von Commas getrennt sind):

0901XX 892XXXXX, 24/12/2010, CARD PAYMENT TO MICKEY MOUSE29.90 GBP ON 22-12-2010, -29.9

Das Problem, das ich habe, ist, dass die Informationen in der Thrid -Spalte aufgrund der Einbeziehung des Transaktionsbetrags und des Datums "Kartenzahlung an Mickey Mouse* einzigartig sind29,90 GBP am 22.12.2010*". Infolgedessen bin ich gezwungen, alle 200+ Transaktionen einzeln zu kategorisieren, was mit meinem geistigen Wohlbefinden nicht notwendig ist.

Die beste Lösung, die ich mir vorstellen kann, ist, alle Zahlen aus dieser Spalte zu entfernen und alle redundanten Begriffe ("GBP on", ",", "-") durch einen Nullwert zu finden und zu ersetzen, aber ich bin mir nicht sicher, wie das zusammenstellen.

Jede Hilfe wäre sehr geschätzt.

War es hilfreich?

Lösung

Das Folgende kann Ihnen helfen. Ich mache die folgenden Annahmen:

  1. Sie erhalten Ihre Online -Bankdetails anfangs in einem .csv -Format
  2. Ihre dritte Spalte ist immer von der Form TextDescription+Amount+Currency+Date
  3. In der .csv -Datei befindet sich die dritte Spalte Spalte C im Arbeitsbuch

Folge diesen Schritten:

  1. Öffnen Sie die .csv -Datei
  2. Öffnen Sie den VBE -Editor, indem Sie drücken ALT + F11
  3. Auswählen Einfügen> Modul aus der Symbolleiste
  4. Fügen Sie im Modul den folgenden Code ein, platzieren Sie Cursor überall in Code und drücken Sie dann auf "F5"

    Sub CleanTransaction()
    Dim rng As Range, cl As Range
    Dim lastRow As Long, iChar As Long
    lastRow = Range("C1").End(xlDown).Row
    Set rng = Range("C1:C" & lastRow)
    
    
    For Each cl In rng
       For iChar = 1 To Len(cl)
           If IsNumeric((VBA.Mid$(cl, iChar, 1))) Then
               cl = VBA.Trim$(VBA.Left$(cl, iChar - 1))
           End If
       Next iChar
    Next cl    
    End Sub
    

Dies sollte für jedes Element in Spalte C Folgendes erfolgen:

CARD PAYMENT TO MICKEY MOUSE29.90 GBP ON 22-12-2010 

...wird...

CARD PAYMENT TO MICKEY MOUSE

Beachten Sie, dass der Code nach dem ersten Ereignis einer Zahl in der Beschreibung und dem Ausdruck alles danach sucht. Dies setzt voraus, dass das erste Mal eine Zahl vorliegt stets bezeichnet den Preis. Wenn der Zahlungsempfänger eine Nummer im Namen hätte, würde der Code die z.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top