Rellenar celdas vacías en rangos múltiples

En una hoja de Excel tengo una base de datos extensa, en un rango de A5:D1500, en el orden de las columnas contiene los siguientes datos: "A" Departamento, "B" Nombre, "C" Cargo, "D" Monto a pagar.

La cantidad de empleados en cada departamento es variable, hay un promedio de 11 empleados en cada departamento, que en totalidad son 45.

El problema es que en el primer departamento que son 19 empleados unicamente el nombre esta en la celda "A5" y las celdas "A6:A23" están vacías, luego en la celda "A22" se encuentra el nombre del segundo departamento, y nuevamente en las celdas "A23:A37" están vacías, porque en la celda "A38" se encuentra el nombre del tercer departamento, este comportamiento sigue hasta finalizar toda la base de datos.

Lo que necesito es una formula o macro para que en las celdas vacías pueda poner el nombre del departamento a cada empleado que tiene la celda vacía.

5 respuestas

Respuesta
2

Haciendo doble clic en el marcador (punto inferior derecho de la celda seleccionada) se logra rellenar el rango vacío hasta encontrar otro dato, que sería el segundo departamento. Y así hasta completar todos los rangos.

A raíz de que aquí en el foro no se pueden subir imágenes, dejo la respuesta en esta entrada a mi Blog:

https://elsamatilde.blogspot.com/2024/09/r1-rellenar-celdas-vacias-en-rangos.html 

Respuesta
1

I. Hola Luís, sólo soy lector de la comunidad pero al tener interés en este ámbito quise buscar información, en estos días no logré poder formarme una opinión sobre lo que le ocurre ni vi enlaces válidos, pero en caso de que no reciba respuestas me gustaría trasladar su consulta a varios expertos del ámbito por si pudiesen responderle o bien, partiendo de sus conocimientos, pudiesen averiguar pistas o una posible valoración global de la operación que desea realizar. Perdone por todas las molestias y el tipo de respuesta, ánimo.

https://www-vbaexpress-com.translate.goog/forum/showthread.php?16833-Solved-macro-to-fill-empty-cells-(by-copy-paste)&s=f7c8b26f1c789ce0605187b014831495&_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc&_x_tr_sch=http 

https://dmcritchie-mvps-org.translate.goog/excel/fillempt.htm?_x_tr_sch=http&_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www-mrexcel-com.translate.goog/board/threads/vba-to-fill-many-ranges-of-empty-cells-in-columns-a-and-b-with-different-cell-values.1192284/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www-vbaexpress-com.translate.goog/forum/showthread.php?16833-Solved-macro-to-fill-empty-cells-(by-copy-paste)&_x_tr_sch=http&_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://stackoverflow-com.translate.goog/questions/53265910/macro-to-fill-blank-cells-within-a-range?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www-ablebits-com.translate.goog/office-addins-blog/fill-blanks-excel/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www.mrexcel.com/board/threads/vba-to-check-for-blank-cells-in-various-ranges-and-highlight-those-cells.1222212/ 

https://www.mrexcel.com/board/threads/macro-to-fill-blank-cells-in-multiple-worksheets-with-values-in-a-cell-range-in-respect-to-each-worksheet.1185164/ 

https://stackoverflow.com/questions/56163879/replace-blank-cells-with-0-for-specified-range-in-all-worksheets 

https://superuser-com.translate.goog/questions/973105/fill-in-blanks-in-multiple-columns-in-excel?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www-excelcampus-com.translate.goog/functions/fill-down-blank-cells/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://stackoverflow.com/questions/34444416/fill-blank-cells-above-and-below-based-on-a-condition-in-another-column 

https://www.reddit.com/r/excel/comments/11mw3oa/how_can_i_automatically_fill_empty_cells/ https://www-statology-org.translate.goog/vba-fill-blank-cells-with-value-above/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www.mrexcel.com/board/threads/auto-fill-blanks-in-multiple-columns-with-formula-or-macro.1079707/ 

https://stackoverflow-com.translate.goog/questions/29883803/fill-down-blank-cells-in-multiple-columns-in-specific-sheets?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://superuser.com/questions/1645718/find-if-cells-in-multiple-cell-ranges-in-excel-are-blank-or-filled 

https://stackoverflow.com/questions/75614620/fill-blank-cells-from-above-in-vba 

I. PD, disculpe, le dejo la información que vi en forma de enlaces con consultas ya tratadas. Ánimo.

Respuesta
1

Revisa el siguiente:

https://youtube.com/shorts/0T4PDatE7EE 

Otras recomendaciones:

https://youtu.be/PLNGRD6jfgk 

Respuesta
1

Puedes usar este código:

Sub RellenarDepartamentos()
    Dim i As Long
    Dim LastRow As Long
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row 
    For i = 5 To LastRow 
        If Cells(i, 1).Value = "" Then
            Cells(i, 1).Value = Cells(i - 1, 1).Value 
        End If
    Next i
End Su

Este código revisa cada fila en la columna A desde la fila 5 hasta la última fila con datos. Si encuentra una celda vacía, copia el valor del departamento de la celda superior.

Respuesta
1

Para rellenar las celdas vacías en la columna "A" con el nombre del departamento correspondiente en cada grupo de empleados, puedes usar VBA para automatizar esta tarea. Aquí te dejo un código que lo hará por ti:

Código VBA para rellenar celdas vacías en la columna A:

Sub RellenarDepartamentos()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim deptoActual As String

' Establece la hoja donde se encuentran los datos
Set ws = ThisWorkbook.Sheets("Hoja1") ' Cambia "Hoja1" por el nombre de tu hoja si es necesario

' Encuentra la última fila con datos en la columna A
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

' Recorre las filas desde la fila 5 hasta la última fila con datos
For i = 5 To lastRow
' Si la celda en la columna A no está vacía, guarda el valor (nombre del departamento)
If ws.Cells(i, 1).Value <> "" Then
deptoActual = ws.Cells(i, 1).Value
Else
' Si la celda en la columna A está vacía, rellénala con el valor del departamento actual
ws.Cells(i, 1).Value = deptoActual
End If
Next i

MsgBox "Celdas vacías rellenadas correctamente.", vbInformation
End Sub

Instrucciones para usar el código VBA:

1. Abrir el Editor de VBA: Presiona Alt + F11 en Excel para abrir el Editor de VBA.

2. Insertar un nuevo módulo: En el Editor de VBA, ve a Insertar > Módulo.

3. Pegar el código: Copia el código proporcionado arriba y pégalo en el módulo.

4. Ejecutar la macro: Cierra el Editor de VBA y en Excel presiona Alt + F8. Selecciona RellenarDepartamentos y haz clic en Ejecutar.

Explicación del código:

Ws.Cells(i, 1).Value <> "": Verifica si la celda en la columna A (departamento) tiene un valor. Si la tiene, guarda ese valor en la variable deptoActual.

Else: Si la celda está vacía, asigna el valor de deptoActual (que contiene el nombre del último departamento encontrado) a esa celda vacía.

For i = 5 To lastRow: Comienza en la fila 5 (donde comienzan tus datos) y recorre todas las filas hasta la última fila con datos.

Este código funcionará de manera eficiente para rellenar todas las celdas vacías en la columna "A" con el nombre del departamento correspondiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas