Concatenar con Condición en Excel?

Sabe como concatenar en la Columna H los conceptos de la Columna E que corresponde a cada cantidad ($) de la Columna F pero cada cantidad posee conceptos de 2,3,4,5,6 filas por lo que concatenar manualmente cada uno en el archivo de 5,000 filas se vuelve trabajoso, ¿De qué manera se puede automatizar?

2 Respuestas

Respuesta
1

En tu imagen no se aprecia si se van a concatenar los conceptos de arriba de la cantidad o de abajo de la cantidad, tampoco se observa si también quieres concatenar la cantidad.

Puedes poner un ejemplo de lo que quieres concatenar según los datos que tienes en la imagen.

Este es el Rango de cada Concatenación inician justo en la fila de la Cantidad($) finalizan una fila antes de la siguiente cantidad. NO deseo concantenar la Cantidad solo los conceptos.-

Ejecuta la siguiente macro

Sub Concatenacion()
'Por. Dante Amor
    For i = Range("E" & Rows.Count).End(xlUp).Row To 2 Step -1
        cad = Cells(i, "E") & " " & cad
        If Cells(i, "F") <> "" Then
            Cells(i, "H") = Left(cad, Len(cad) - 1)
            cad = ""
        End If
    Next
    MsgBox "fin"
End Sub

Cambia en la macro el número 2 por la fila donde empiezan los datos.


Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Concatenacion
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Sal u dos, Dante Amor, no olvides valorar la respuesta.

Respuesta
1

¿Si entendí bien quieres algo parecido a esto?

si es si prueba con esta macro, esta hecha para empezar en la celda e1, solo ajusta la primera línea a tus datos

Sub rellenar()
Set DATOS = Range("e1").CurrentRegion
With DATOS
    INICIO = Range("E1").Row
    X = 1
    For I = 1 To .Rows.Count
        FIN = .Cells(I, 2)
        If FIN = vbNullString Then GoTo SIGUIENTE:
        FIN = .Cells(I, 2).Row
        RESTA = FIN - INICIO
        If X = 1 Then Set AREA = .Rows(INICIO).Resize(RESTA + 1, 2)
        If X > 1 Then INICIO = INICIO + 1: Set AREA = .Rows(INICIO).Resize(RESTA, 2)
        INICIO = FIN
        With AREA
        .Select
        For J = 1 To .Rows.Count
                    If J = 1 Then TEXTO = .Cells(J, 1)
                    If J > 1 And J < .Rows.Count Then TEXTO = TEXTO & " " & .Cells(J, 1)
                    If J = .Rows.Count Then TEXTO = .Cells(J, 1) & " " & DATOS.Cells(I, 2) & " " & TEXTO
            Next J
            DATOS.Cells(INICIO, .Columns.Count + 2) = TEXTO
        End With
        X = X + 1
SIGUIENTE:
    Next I
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas