Saltar al contenido

Cuadrar datos desde Excel Banca online... 1 sola columna


Clara_P

Recommended Posts

publicado

Buenos días o tardes a tods :)

Soy bastante inexperta en Excel y no logro dar con la solución con los varios tutoriales que he visto en youtube, por eso mismo, os pregunto por aquí y agradezco.

Tengo un documento origen (un excel que indica mis movimientos en la cuenta bancaria que se autogenera en mi banco online que cuando exporto solamente lo hace en una columna) que necesito cargar en mi software de gestión de gastos. En dicho software necesito subir mi archivo excel para que identifique cada gasto con sus correspondientes variables (descripción del gasto, importe, etc.) 

Al exportar el archivo excel de la banca online, me pide cuál es la correspondencia entre las columnas del documento que exporto y las columnas originales del software (es decir, Date, Description, Charges,etc de los movimientos bancarios)

Mi documento de base solamente tiene una columna.
He probado a separar los datos en varias columnas, pero claro, esto sólo hace que los títulos de la columna sí que ocupan cada uno una celda, pero en cambio, su contenido, sigue todo en una misma celda.

 

Adjunto 1º imagen del documento excel que se autogenera en mi banco online con los movimientos

2º imagen en el software de gestión de datos cuando importo dicho excel y me pide que cuadre los datos y no puedo.

 

Muchisimas gracias de antemano a todos

Sin título-1.jpg

Sin título-2.jpg

publicado

Hola

En la opción texto en columnas puedes intentar usar la opción de ancho fijo, ahí puedes definir (arrastrar las flechas en negro) dónde inicia una columna y donde termina. Es decir; te brincas el encabezado y las delimitas por el ancho de los datos en la forma que lo necesitas.

Sin-t-tulo.jpg

 

Otra opción ya en el Excel, sería con funciones para separar ese texto en las columnas que necesitas.

Saludines.

publicado

Muchísimas gracias por tu respuesta Israel, he probado  a hacer lo que indicas: delimitar por el ancho de los datos en la forma que lo necesito. De esta forma se soluciona el problema de los títulos de cada columna, pero la información que de forma predeterminada estaba toda concentrada en la primera columna, continúa estando ahí...

 

Adjunto captura para que se aprecie, los títulos se desplazaron a cada columna, pero la ifnormación no2.jpg.91b1f8a0fa8434a11d7c75d6af724f1d.jpg

 

publicado

Buenas, viendo las imágenes , creo que si eliminas las 14 primeras líneas del fichero csv el software reconocerá el fichero, pero quizás te falte información.

Las líneas del csv tiene que tener tantos delimitadores ";" como columnas del fichero. 

es decir todas las líneas deben tener 5 ";"

lo ideal es que subas el fichero cambiando los datos

saludos

 

 

 

publicado

La idea de eliminar las primeras 14 filas es buena opción. Si después de eso, aún quieres separar el texto de la primer columna en el EXCEL, entonces podrías intentar con funciones de Texto para separarlo.

Como ejemplo puedes usar estas:

=EXTRAE(A8,1,10)
=EXTRAE(A8,12,10)
=EXTRAE(A8,ENCONTRAR(" ",A8),4)
=EXTRAE(A8,ENCONTRAR(DERECHA(D8,1),A8)+1,50)

Y te saldría algo parecido a esto:

Captura.jpg

De esta forma hay varias opciones, pero te muestro unas del 2010 de acuerdo a tu perfil. Hay unas funciones nuevas en 365 como texto antes o después (de) algún criterio que tu necesites como el ";" por ejemplo. Lo que quiero decir es que no hay una fórmula única, la desarrollas de acuerdo a tu necesidad.

Saludines.

publicado

Muchísimas gracias Jasall e Israel por vuestros consejos. Acabo de eliminar las primeras 14 filas; para la sugerencia de Israel aún no puedo contestar, porque me está tomando un poco de tiempo.

 

gracias de nuevo, volveré cuando logre algo :)

 

3.jpg

publicado

Ya es raro que una web bancaria te exporte los datos en una sola columna; antiguamente era asi, pero los principales bancos ya te exportan un excel bastante bueno...

La imagen no se ve muy bien, pero como te han dicho ya, elimina las 14 lineas primeras que no valen; generalmente esos archivos, el delimitador es un Tab; usalo como delimitador para separar en columnas. Si no te lo separa bien, prueba como delimitador el espacio (ya te digo, no se ve bien).

IMPORTANTE: En tu segundo mensaje parece que lo has separador bien, pero solo los títulos; eso es porque solo tenias seleccionada esa fila. Tienes que seleccionar todas las filas (seleccionar toda la columna A) para que te separe todas las filas, no solo la de los titulos.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.