Poner dato N filas adelante si otro dato es >0

Quisiera saber con que fórmula o como podría indicar en excel lo que comento en el titulo. Tengo dos columnas (A, B), quisiera que si en la columna A hay un numero mayor a 0 en la columna B inserte un numero N filas abajo

1 Respuesta

Respuesta
-1

Una forma seria esta, en la imagen ves un antes y un después, por fórmula no hay manera es a fuerza macro, te paso la macro solo cambia el rango a2 por el rango que manejes

y esta es la macro

Sub insertar_filas()
Set datos = Range("a2").CurrentRegion
With datos
    r = .Rows.Count:    c = .Columns.Count
    suma = WorksheetFunction.Sum(.Columns(1)) + r
    For i = 1 To suma
        valor = .Cells(i, 1)
        On Error Resume Next
        .Rows(i + 1).Resize(valor, c).EntireRow.Insert
        On Error GoTo 0
    Next i
End With
Set datos = Nothing
End Sub

Creo que no se entendió bien, me refiero a algo, creo más simple: Que cada vez que en A haya un número mayor a cero, inserte en B, digamos N=2, dos filas adelante de donde esta el número, otro numero a especificarse y si no que inserte 0.

En la columna G1 colocas la cantidad de filas que quieres insertar y luego corres la macro el resultado sera el que ves en la imagen

y esta es la macro

Sub INSERTAR_FILAS()
Set DATOS = Range("F3").CurrentRegion
With DATOS
    R = .Rows.Count: C = .Columns.Count
    FI = Range("G1"): Total = (R * (FI + 1))
    For I = 2 To Total
        Valor = .Cells(I, 1)
        If Valor > 0 And IsNumeric(Valor) Then
            .Rows(I + 1).Resize(FI, 2).EntireRow.Insert
        End If
    Next I
    R = .Rows.Count
    Set DATOS = .Rows(2).Resize(R - 1, 2)
    .Cells(1, 1) = 0
    .Cells(1, 1).AutoFill Destination:=Range(.Columns(1).Address), Type:=xlFillSeries
End With
Set DATOS = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas