Domanda

Sfondo:. Ho bisogno di ripulire un file CSV del mio estratto conto bancario per l'uso in uno strumento di rendicontazione finanziaria on-line

Le operazioni sono tutti nei seguenti formati (colonne separati da virgole):

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

Il problema che ho è che le informazioni nella colonna thrid è tutto unica causa dell'inclusione dell'importo della transazione e la data - "carta di pagamento per MICKEY MOUSE * 29.90 GBP ON 22-12-2010 *". Di conseguenza, sono costretto a catalogare tutte le oltre 200 transazioni singolarmente, che non è adatto con il mio benessere mentale.

La soluzione migliore che viene in mente è quello di eliminare tutti i numeri da questa colonna e trovare e sostituire tutti i termini ridondanti ( "GBP ON", "" '-') con un valore nullo, ma sono non sono sicuro di come fare per mettere insieme quella.

Qualsiasi aiuto sarebbe molto apprezzato.

È stato utile?

Soluzione

Di seguito può aiutare. Sto facendo le seguenti ipotesi:

  1. Hai trovato i tuoi dati bancari online in un formato .csv inizialmente
  2. Il tuo terza colonna è sempre della forma TextDescription+Amount+Currency+Date
  3. Nel file .csv, la terza colonna è la colonna C nella cartella di lavoro

le seguenti operazioni:

  1. Apri file .csv
  2. Apri VBE Editor premendo ALT + F11
  3. Seleziona Inserisci> Modulo dalla barra degli strumenti
  4. Nel modulo incolla il seguente codice, posto cursore in qualsiasi punto nel codice, e poi ha colpito `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
    

Questo dovrebbe effettuare le seguenti operazioni per ogni voce nella colonna C:

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

... diventa ...

CARD PAYMENT TO MICKEY MOUSE

Si noti che il codice funziona, cercando per la prima occorrenza di un numero nella descrizione e stripping fuori tutto quello dopo. Ciò presuppone che prima occorrenza di un numero sempre indica il prezzo. Se il destinatario del pagamento aveva un numero nel nome, allora il codice fallirebbe esempio PAGAMENTO CON CARTA DI Phones4U

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top