¿Cómo eliminar solo algunos valores de una columna?

Simplemente eso, en el caso de la imagen, con una fórmula, borrar los "0" en la columna B y ordenar los valores uno tras el otro. En la imagen lo hice de forma manual.

1 respuesta

Respuesta
1

Puedes poner un encabezado a tus columnas, por ejemplo:

Después ejecuta la siguiente macro

Sub Filtrar_Ordenar()
'
' Por Dante Amor
'
    Application.ScreenUpdating = False
    Range("B2:B" & Rows.Count).ClearContents
    If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
    u = Range("A" & Rows.Count).End(xlUp).Row
    ActiveSheet.Range("A1:A" & u).AutoFilter Field:=1, Criteria1:=">0"
    u = Range("A" & Rows.Count).End(xlUp).Row
    Range("A2:A" & u).Copy Range("B2")
    u = Range("B" & Rows.Count).End(xlUp).Row
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("B2:B" & u), SortOn:=xlSortOnValues, _
            Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Range("B1:B" & u)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
End Sub

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: Filtrar_Ordenar
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Usar macro para esto... pensé que podría ser algo mucho más simple.

Creo que veré otra opción para hacer esto.

Se me ocurría una fórmula "si"

=SI(a2=0;a3;a2)

Pero eso, repetiría el valor siguiente...

Y cuando hay dos ceros consecutivos, el 2do cero se escribe también.

Gracias.

Te anexo una fórmula matricial

=SI.ERROR(INDICE($A$1:$A$7; K.ESIMO.MENOR(SI($A$2:$A$7>0; FILA()); FILA()-1));"")

Realiza lo siguiente:

- De igual forma pon un encabezado en cada columna.

- Entonces en la celda B2 pon la fórmula

- Cambia $A$7 (en las 2 partes de la fórmula) por la última celda que tengas con números

- Copia la fórmula desde B2 hacia abajo hasta B7

- Regresa a la celda B2

- Selecciona todas las fórmulas, es decir, selecciona las celdas desde B2 y hasta B7

- Edita la fórmula de la celda B2 (presiona la tecla F2 para entrar a la barra de fórmulas)

- Como es una fórmula matricial, para aceptarla deberás presionar al mismo tiempo las 3 teclas Shift + Control + Enter

Notarás que las fórmulas quedan entre llaves { } 


.

'S aludos. Dante Amor. Recuerda valorar la respuesta.

.

Me aparece eso... mira a ver si me ayudas, encontré la función DESREF y la use así:

Cuando es cero, desplaza hacia la celda una fila hacia abajo, pero no debe repetirse el 2, ni el 3... y cuando vuelve a aparecer otro cero consecutivo, debería volver a bajar una celda.

Creo que es más simple... pero por aquí va el asunto.

Gracias!

Dante:

Si me ha resultado, el error era del nombre de la formula, SI.ERROR, lo cambie por SIERROR, sin punto lo toma esta versión de excel.

A todo esto, funciona, no se como usar ninguna de esas funciones, así que me aventuré a usarla como la necesitaba en realidad, en horizontal... y cambia el panorama.

Cambie los rangos de columna, por filas, y las palabras "FILA" por "COLUMNA" y funciona, pero me desplaza el primer valor a la derecha.....

Como soluciono eso? 

* seguí las indicaciones a pie de la letra!

Gracias!

Este es mi archivo de trabajo.

Lo que necesito es colocar los números que me arroja la fila 100, re-ordenados y sin los "0" en la fila 105, luego poder asociar una nota a esos números.

Ocupe la formula, y no resulta, modifique los rangos, siendo "$C$100:$N$100" el rango en la fila 100.

El Indice debe empezar desde la columna 1, es decir, desde la columna A

Te anexo la fórmula

=SIERROR(INDICE($A$100:$N$100;K.ESIMO.MENOR(SI($C$100:$N$100>0;COLUMNA());COLUMNA()-2));"")

.

'S aludos. Dante Amor. Recuerda valorar la respuesta.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas