Inicio > Microsoft Excel > elsamatilde > Separar celdas con valor 0

Separar celdas con valor 0

Experto:
Usuario:
Fecha: 29/08/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
25/08/2008
julen108, usuario preguntando en Microsoft Excel
Usuario
Buenas a todos,
Mi problema no es con una formula en concreto, sino que quiero hacer una cosa y no veo la manera.
Tengo una tabla con 7 columnas y las filas varian. La tabla se rellena por unas formulas de SI que tiene cada celda. De esa manera la tabla se llena con 0 (ceros) o con valores. Los valores quedan muy dispersados, es decir que en una columna puedo tener 3 celdas con 0 luego 1 con un valor (D10:00-18:00), luego otros con 0 y vuelvo a tener valores.
Como los que tienen 0 no me interesan, quiero condensar todos los valores en el orden que aparecen en la tabla, en la parte superior de cada columna.
He probado con filtros, pero estos lo que me hacen es ocultar filas, entonces, si en la columna 1 fila 1 tengo un 0 pero en la columna 2 fila 1 un valor, se suprime toda la fila por culpa del primer filtro.

He intentado explicarme, pero no se si lo he conseguido.
Agradezco toda respuesta,
Atentamente
Julen108
25/08/2008
julen108, experto respondiendo en Microsoft Excel
Experto
Hola:
Lo que tenés que hacer es filtrar todas las col por valores distintos a 0.
Eso te mantendrá visibles aquellas filas que si bien tienen un 0 en alguna col pero datos en otras, no se oculte.

Saludos
Elsa

http://es.geocities.com/lacibelesdepunilla
25/08/2008
julen108, usuario preguntando en Microsoft Excel
Usuario
Lo primero gracias por la rapidez,
Por lo que entiendo, en esa solución, si en una fila hay una valor que no sea 0 en una de las columnas, en las demas columnas habra ese 0 porque no se puede acultar toda la fila. De esa manera lo unico que consigo es una simplificacion de la tabla quitando las filas que contienen todo 0.
No sé si he entendido bien, pero si es asi, no me valdría, ya que lo que necesito es quitar todos los 0 de cada columna, es decir tratarlas como independientes. Lo unico que se me ocurre a estas alturas, es poner cada columna en filas diferentes para que no se molestene y luego con esos resultados crear una tabla, claro que nose si la tabla se actualizaria constantemente. Pero bueno eso ya se vera en el caso de que no consiga hacer lo intento explicar.
Atentamente.
Julen108
25/08/2008
julen108, experto respondiendo en Microsoft Excel
Experto
Bueno, si las col serán tratadas de forma independiente hay otra solución siempre y cuando no te moleste re-ordenarlas, es decir ordenar cada columna de Z a A
La otra solución es una rutina que te recorra cada col y elimine solo la celda con 0... comentame si con lo del orden te será suficiente, sino te escribiré la rutina.

Saludos
Elsa
25/08/2008
julen108, usuario preguntando en Microsoft Excel
Usuario
Buenas de nuevo,
Si efectivamente el orden si que tiene importancia en este caso, por lo que la primera opción la descarté.
Si no es mucha molestia, me gustaria conocer cual es esa rutina, para así quizas poder solucionar mi quebradero de cabeza de estos ultimos dias.
Un saludo
Julen108
25/08/2008
julen108, experto respondiendo en Microsoft Excel
Experto
Solo confirma si las celdas se deben eliminar o correr hacia abajo .... además si se hará tanto para ceros como para vacías.

Saludos
Elsa
PD) Ya terminé por hoy...... será recién para mañana quizás.
25/08/2008
julen108, usuario preguntando en Microsoft Excel
Usuario
Estoy en Euskadi (España) y por eso el horario tenemos tan diferente. Ayer por ejemplo me quede hasta las 4 de la mañana y por eso tube esa rapidez en respuesta.
Respecto a la nueva duda... no me interesa que las celdas se borren, tan solo es un reordenamiento, pero no alfabetico sino que es mantener el orden de cada columna.
Una pregunta me viene: ¿Esta tabla se actualizaria al instante o tendría que hacer algo para irlo actualizando?
Un saludo y muchisimas gracias por esa dedicacion,
Julen108
26/08/2008
julen108, experto respondiendo en Microsoft Excel
Experto
Hola:
Te dejo una rutina que tendrás que copiarla en un módulo.
Con Alt+F11 entrás al Editor, insertás un módulo y allí la copiás.
Luego desde la hoja Excel, menú Herramientas, macros, seleccioná de la lista esta macro y con botón Opciones podés asignarle un atajo de teclado, así la ejecutás al momento que necesites reordenar la tabla.
La rutina está pensada para 3 col a partir de C2, esto tendrás que ajustar, sinó dame el rango exacto para que la modifique.
Sub reordenar()
For col = 3 To 5
fila = 2
conta = 0
Cells(fila, col).Select
While ActiveCell <> ""
If ActiveCell = 0 Then
Selection.Delete Shift:=xlUp
conta = conta + 1
Else
ActiveCell.Offset(1, 0).Select
End If
Wend
If conta <> 0 Then
For i = 1 To conta
ActiveCell.Value = 0
ActiveCell.Offset(1, 0).Select
Next i
End If
Next col
End Sub

Saludos
Elsa

Tus mejores opciones en manuales programación, desde:
http://es.geocities.com/lacibelesdepunilla/manuales
29/08/2008
julen108, usuario preguntando en Microsoft Excel
Usuario
Buenas de nuevo,
He tardado unos días en responder porque no he tenido mucha oportunidad de hacer pruebas. Lo intente la primera vez y me daba error en la línea quinta.
"Cells(fila, col).Select"
Creo que ya lo pude solucionar, ya que ahora todo va a la perfección.
Muchas gracias por las dedicación y la ayuda que tan importante ha sido para mi trabajo.
Un saludo
Julen108
29/08/2008
julen108, usuario preguntando en Microsoft Excel
Usuario
Buenas de nuevo,
He tardado unos días en responder porque no he tenido mucha oportunidad de hacer pruebas. Lo intente la primera vez y me daba error en la línea quinta.
"Cells(fila, col).Select"
Creo que ya lo pude solucionar, ya que ahora todo va a la perfección.
Muchas gracias por las dedicación y la ayuda que tan importante ha sido para mi trabajo.
Un saludo
Julen108
Enlaces patrocinados