Discussion:
¿Cómo decirle a excel que la celda está vacía?
(demasiado antiguo para responder)
Joel
2005-04-28 14:48:43 UTC
Permalink
Hola a todos!

Estoy utilizando los subtotales para ver cuántos elementos hay no vacíos
en una base de datos. El problema viene de que utilizo fórmulas y no he
conseguido darle a entender que las celdas que son igual a cero no las
cuente. Hay que suprimir manualmente las casillas con resultado cero para
que funcione bien la fórmula. Lo he intentando con "" pero con ingual
éxito. ¿Alguien sabe cómo decirle a esta fórmula que la celda está vacía?.
Gracias de antemano. Un saludo,

Joel.
Fernando Arroyo
2005-04-28 15:02:38 UTC
Permalink
Post by Joel
Hola a todos!
Estoy utilizando los subtotales para ver cuántos elementos hay no vacíos
en una base de datos. El problema viene de que utilizo fórmulas y no he
conseguido darle a entender que las celdas que son igual a cero no las
cuente. Hay que suprimir manualmente las casillas con resultado cero para
que funcione bien la fórmula. Lo he intentando con "" pero con ingual
éxito. ¿Alguien sabe cómo decirle a esta fórmula que la celda está vacía?.
Gracias de antemano. Un saludo,
Joel.
No estoy seguro de haber entendido qué es lo que necesitas, pero quizás podrías usar CONTAR.SI en lugar de SUBTOTALES.

Por ejemplo, para contar las celdas distintas de cero en el rango A1:A10

=CONTAR.SI(A1:A10;"<>0")

y si necesitaras omitir también las celdas vacías:

=CONTAR.SI(A1:A10;"<>0")-CONTAR.SI(A1:A10;"")

Un saludo.


Fernando Arroyo
MS MVP - Excel
claudio alabarce
2005-04-28 15:12:40 UTC
Permalink
Joel:

Has probado la función contar.si?

No te sirve?

Saludos, claudio
Post by Joel
Hola a todos!
Estoy utilizando los subtotales para ver cuántos elementos hay no vacíos
en una base de datos. El problema viene de que utilizo fórmulas y no he
conseguido darle a entender que las celdas que son igual a cero no las
cuente. Hay que suprimir manualmente las casillas con resultado cero para
que funcione bien la fórmula. Lo he intentando con "" pero con ingual
éxito. ¿Alguien sabe cómo decirle a esta fórmula que la celda está vacía?.
Gracias de antemano. Un saludo,
Joel.
KL
2005-04-28 15:22:00 UTC
Permalink
Hola Joel,

Si lo que intentas hacer es contar las celdas que no esten vacias o tengan 0
y suponiendo que no hay valores negativos, entonces prueba una de estas
formulas:

1) Si solo hay valores numericos o no se deben contar las cadenas de texto
al igual que los ceros y vacios, usa:
=CONTAR.SI(A1:A10;">0")

2) Si aparte de los valores numericos se deben contar las cadenas de texto,
usa:
=SUMAPRODUCTO(--(A1:A10>0))

Si tambien se tienen que contar los valores negativos, prueba:

1) Si solo hay valores numericos o no se deben contar las cadenas de texto
al igual que los ceros y vacios, usa:
=SUMAPRODUCTO((A1:A10<>0)*(A1:A10<>"")*ESNUMERO(A1:A10))

2) Si aparte de los valores numericos se deben contar las cadenas de texto,
usa:
=SUMAPRODUCTO((A1:A10<>0)*(A1:A10<>""))

Saludos,
KL
Post by Joel
Hola a todos!
Estoy utilizando los subtotales para ver cuántos elementos hay no vacíos
en una base de datos. El problema viene de que utilizo fórmulas y no he
conseguido darle a entender que las celdas que son igual a cero no las
cuente. Hay que suprimir manualmente las casillas con resultado cero para
que funcione bien la fórmula. Lo he intentando con "" pero con ingual
éxito. ¿Alguien sabe cómo decirle a esta fórmula que la celda está vacía?.
Gracias de antemano. Un saludo,
Joel.
Joel
2005-05-03 07:37:58 UTC
Permalink
Hola a Todos!

Antes que nada agradezco vuestra ayuda y os pido disculpas por haber
tardado tanto en responder pues he estado de viaje.

No puedo utilizar la función contarsi porque los condicionales son más de
uno. Podría utilizar la función sumaproducto pero tampoco es adecuada,
pues tiene que estar necesariamente en un autofiltro porque necesito
flexibilidad y facilidad para la gente que le paso el archivo. Recurro al
buscar valores cero y suprimirlos pero me parece una pequeña chapuza y
como tengo que actualizar este archivo cada dos semanas en muy incómodo.
Gracias otra vez por vuestra ayuda y un saludo,

Joel.
KL
2005-05-03 12:16:57 UTC
Permalink
Post by Joel
Hola a Todos!
Antes que nada agradezco vuestra ayuda y os pido disculpas por haber
tardado tanto en responder pues he estado de viaje.
No puedo utilizar la función contarsi porque los condicionales son más de
uno. Podría utilizar la función sumaproducto pero tampoco es adecuada,
pues tiene que estar necesariamente en un autofiltro porque necesito
flexibilidad y facilidad para la gente que le paso el archivo. Recurro al
buscar valores cero y suprimirlos pero me parece una pequeña chapuza y
como tengo que actualizar este archivo cada dos semanas en muy incómodo.
Gracias otra vez por vuestra ayuda y un saludo,
Joel.
KL
2005-05-03 12:47:11 UTC
Permalink
Hola Joel,

A ver si nos aclaramos.
Lo siento, no he entendido nada de este ultimo mensaje aparte de que usas
Autofiltro y que te has resignado a seguir buscando la solucion. Por otro
lado, creo que la pregunta inicial ha recibido las respuestas con soluciones
que funcionan solo que ahora resulta que estaba mal planteada, o mas bien
incompleta. En base a esto sacas la conclusion de que no hay solucion salvo
la de suprimir valores 0 manualmente. Me parece poco logico eh :-)
Post by Joel
No puedo utilizar la función contarsi porque los condicionales son más de
uno.
Esta afirmacion no es del todo cierta. Depende de las condiciones. Si
expones las condiciones (y otros detalles) igual te sorprendemos. Hay al
menos dos formas de establecer condiciones multiples usando contar.si:
replicando la funcion (p.ej.
=CONTAR.SI(A1:A10,"<10")-CONTAR.SI(A1:A10,"<5")) o usando las matrices fijas
(p.ej. =SUMAPRODUCTO(CONTAR.SI(A1:A10,{"A","B","C"}) o su version matricial
=SUMA(CONTAR.SI(A1:A10,{"A","B","C"}) ojo las comas dentro de la matriz
pueden ser contrabarras segun que sistema)
Post by Joel
Podría utilizar la función sumaproducto pero tampoco es adecuada,
pues tiene que estar necesariamente en un autofiltro porque necesito
flexibilidad y facilidad para la gente que le paso el archivo.
Esto se me escapa - puedes reformularlo o/y dar mas detalle?
Post by Joel
Recurro al buscar valores cero y suprimirlos pero me parece una pequeña
chapuza y
como tengo que actualizar este archivo cada dos semanas en muy incómodo.
Gracias otra vez por vuestra ayuda y un saludo,
Siempre tienes la opcion de macro.

Saludos,
KL
Joel
2005-05-03 15:22:18 UTC
Permalink
Hola a todos y gracias por vuestra ayuda!

Voy a intentarme explicar mejor aunque es difícil.

He de usar autofiltros porque mi jefe me lo pide expresamente, pues así se
aclara mucho mas fácil para poder filtrar.

Al final de las filas de autofiltro pongo unos subtotales que van desde
promedios a número de elementos. También es petición expresa de la
autoridad.

Ya tengo unas tablas que resumen los datos y algunas de las respuestas que
me habéis dado anteriormente me van a servir para mejorarlas. Gracias!

Como véis esoy atado a la función subtotales, a no ser que alguno de
vosotros sepáis cómo sacar subtotales sin utilizar dicha función.

¿De verdad no se puede dar a entender a excel que una celda está vacía con
algo tipo =SI(A1=0;VACIO;1000)?

Os vuelvo a agradecer vuestra colaboración y siento no poder explicarme
mejor.

Joel.
KL
2005-05-03 15:46:33 UTC
Permalink
Hola Joel,
Post by Joel
¿De verdad no se puede dar a entender a excel que una celda está vacía con
algo tipo =SI(A1=0;VACIO;1000)?
Claro que se puede (no exactamente lo que pones pero muy parecido). Es que
seguimos hablando de supuestos muy genericos sin mucho contexto. ?Por que no
pones algo como lo siguiente?

-Tengo un rango de datos [A2:F1000]
-Al rango se le ha aplicado el AutoFiltro
-En la fila [1002] tengo los subtotales
-Los subtotales deben basarse exclusivamente en los datos filtrados, no en
toda la tabla
-Las columnas de la tabla contienen los siguientes datos:
[A] - codigo registro
[B] - fecha
[C] - importe cobrado
[D] - lo que sea
etc.
-Los ejemplos de las formulas que uso son estos:
[A] =
[B] =
[C] =
[D] =
etc.
-Las formulas anteriores no deberian tomar en cuenta:
celdas vacias
valores 0
valores de error
valores logicos

Saludos,
KL
Joel
2005-05-04 07:48:32 UTC
Permalink
Gracias KL Voy a intentar ser más concreto.

Importo un archivo de texto con datos de ventas que coloco en una hoja que
llamo Dat. Los datos describen productos, cantidades y si son datos de
acumulado tam o mes.

En otra hoja que llamo Clientes importo un txt con datos de clientes.
Código, nombre, provincia, representante, etc.

He de ponerlo en dos hojas porque el programa original que genera los
datos tiene un máximo de columnas para cada archivo que genera que ya
hemos copado.

En una tercera hoja que llamo Autofiltro "cruzo" los dos archivos para
crear un tercera en la que pongo los datos "masticaditos" para que se
hagan mas fáciles de "digerir" para la gente a la que va dirigido. Esta
tercera hoja tiene que llevar autofiltros y subtotales necesariamente
porque así me lo han pedido ya que se necesita flexibilidad para filtrar
los datos.

El archivo de datos txt de ventas y de clienes tienen una longitud de
filas variable pero pongamos por ejemplo que mide hasta la fila 1000
(contando los encabezamientos).

En la fila 1003 empiezo a poner las fórmulas de los subtotales que van
desde el simple de la suma (9) hasta el de contar los elementos que
contienen ventas (mayores que cero o no vacíos) o el de número total de
filas (todas sin excepción, tengas ceros o vacías da igual).

Para contar los elementos utilizo en los subtotales contar y contara (2 y
3)que es lo que me da problemas porque como los datos vienen de fórmulas
les tendría que poner que son celdas vacías para poder contarlas de una
forma apropiada. Tienen que contar celdas que vienen de varios tipos
diferentes de fórmulas. Una tipo sería buscarv(datA3;clientesA3:Z2000;5)
que relaciona los códigos de clientes para devolver el representante, la
zona, etc.

¿Cómo puedo hacer que cuente de una forma adecuada sin tener que borrar
los ceros "a mano"?.

Ya que os he hecho toda la explicación voy a preguntar otra cosa que me da
problemas ¿Cómo puedo hacer que el número de filas de las hojas Autofiltro
y Dat se ajusten automáticamente (la hoja Dat tiene un número diferente de
filas cada vez)?

Espero haberme explicado bien ahora. Muchas gracias por vuestra paciencia
y un saludo,

Joel.
KL
2005-05-04 14:49:11 UTC
Permalink
Hola Joel,

A ver...

Suponiendo
1) que el rango entero de la tabla (sin filtrar y excluyendo los titulos) es
[A2:F10]
2) que por lo consiguiente la primera celda del rango es [A2]
3) que estamos haciendo operaciones diversas con los datos de la columna [B]
4) que solo se deben tener en cuenta los registros filtrados
5) que se deben excluir de las operaciones las celdas vacias o con valor 0
6) que puede haber necesidad de condiciones adicionales para cada una de las
operaciones
7) que todas las formulas matyriciales se introducen mediante
Ctrl+Shift+Enter
8) y que todo lo de arriba parece imposible de compaginar,

prueba las siguientes formulas.

Saludos,
KL

Contar
=SUMAPRODUCTO(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0)*ESNUMERO($B$2:$B$10))

ContarA
=SUMAPRODUCTO(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0)*($B$2:$B$10<>""))

Suma
MATRICIAL (solo si necesitas añadir condiciones - funciona mas o menos como
la tipica formula condicional con SUMAPRODUCTO)
=SUMA(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;FALSO))

Promedio
MATRICIAL
=PROMEDIO(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;FALSO))

Producto
MATRICIAL
=PRODUCTO(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;1))

Max
MATRICIAL
=MAX(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;FALSO))

Min
MATRICIAL
=MIN(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;FALSO))

Var
MATRICIAL
=VAR(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;""))

VarP
MATRICIAL
=VARP(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;""))

DesvEst
MATRICIAL
=DESVEST(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;""))

DesvEstP
MATRICIAL
=DESVESTP(SI(SUBTOTALES(3;DESREF($A$2;FILA($A$2:$F$10)-FILA($A$2);0))*($B$2:$B$10<>0);$B$2:$B$10;""))
Joel
2005-05-06 07:42:17 UTC
Permalink
Joel wrote:

GRACIAS KL!!

Ahora sí que funciona y es exactamente lo que me hacía falta. Me ha
animado mucho que dijeras que parece imposible. A veces a mí también me lo
parece. Dos preguntas fáciles que pueden parecer de novato. ¿Por qué me
aparecen los números subrayados?, ¿Se puede evitar?. Gracias otra vez por
tu paciencia y colaboración y un saludo,

Joel.
KL
2005-05-06 08:27:32 UTC
Permalink
Hola Joel,

Me alegra mucho el haber podido ser de ayuda. Ahora, lo unico que a mi se me
ocurre respecto a tu pregunta es que tienes activado el formato de
subrayado. Prueba seleccionar las celdas donde aparecen los numeros
subrayados, ir al menu Formato>Celda, la pestaña Fuente y desmarcar dicha
opcion. Es que una formula no puede devolver/afectar formatos.

Saludos,
KL
Post by Joel
GRACIAS KL!!
Ahora sí que funciona y es exactamente lo que me hacía falta. Me ha
animado mucho que dijeras que parece imposible. A veces a mí también me lo
parece. Dos preguntas fáciles que pueden parecer de novato. ¿Por qué me
aparecen los números subrayados?, ¿Se puede evitar?. Gracias otra vez por
tu paciencia y colaboración y un saludo,
Joel.
Continúe leyendo en narkive:
Loading...