Pregunta

Antecedentes: necesito limpiar un archivo CSV de mi extracto bancario para su uso en una herramienta de información financiera en línea.

Todas las transacciones están en los siguientes formatos (columnas separadas por comas):

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

El problema que tengo es que la información en la columna THRID es única debido a la inclusión del monto de la transacción y la fecha: "Pago de tarjeta a Mickey Mouse*29.90 GBP el 22-12-2010*". En consecuencia, me veo obligado a clasificar las más de 200 transacciones individualmente, lo que no es condicional con mi bienestar mental.

La mejor solución que se me ocurre es eliminar todos los números de esta columna y encontrar y reemplazar todos los términos redundantes ("GBP On", ".", "-") con un valor nulo, pero no estoy seguro de cómo para armar eso.

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

Lo siguiente puede ayudarlo. Estoy haciendo los siguientes supuestos:

  1. Obtiene sus detalles de banca en línea en un formato .csv inicialmente
  2. Tu tercera columna es siempre de la forma TextDescription+Amount+Currency+Date
  3. En el archivo .csv, la tercera columna es la columna C en el libro de trabajo

Sigue estos pasos:

  1. Abrir archivo .csv
  2. Abra VBE Editor presionando ALT + F11
  3. Seleccione Insertar> módulo de la barra de herramientas
  4. En el módulo, pegue el siguiente código, coloque el cursor en cualquier parte del código y luego presione '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
    

Esto debería hacer lo siguiente para cada elemento en la columna C:

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

... se convierte en ...

CARD PAYMENT TO MICKEY MOUSE

Tenga en cuenta que el código funciona buscando la primera ocurrencia de un número en la descripción y eliminando todo después de eso. Esto supone esa primera ocurrencia de un número siempre denota el precio. Si el destinatario de pago tuviera un número en el nombre, el código fallaría, por ejemplo, el pago de la tarjeta a los teléfonos4U

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top