Discussion:
URGENTE - Promedio en celdas con un tipo de error
(demasiado antiguo para responder)
Carlos García
2005-09-24 12:22:02 UTC
Permalink
Excel 2000/2003

Hola a todos

1º Tengo un rango de celdas que presenta unas celdas con valores
provenientes de una división de valores de otras celdas, y otras celdas que
muestran el error #¡DIV/0!.
2º Necesito obtener el promedio de todo el rango, pero al insertar la
función promedio, me muestra también el error #¡DIV/0!
3º "Gráficamente"sería algo así:

Celda Valor
A1 3
A2 5
A3 #¡DIV/0!
A4 #¡DIV/0!
A5 #¡DIV/0! Esta celda tiene la función PROMEDIO(A1:A4)

4º Obviamente necesito obtener como resultado en A5 el valor 4, y que a
medida que vaya llenándose la planilla con nuevos valores, este resultado se
actualice;así si en la celda A3 se muestra luego, el valor 1; en A5 el
resultado sería 3.

Pregunta: ¿Cómo soluciono este problema?

Desde ya Muchísimas Gracias.


Carlos García
KL
2005-09-24 13:14:59 UTC
Permalink
Op1: formula matricial (introducida mediante Ctrl+Shift+Enter, no solo
Enter) para ignorar los valores de error

[A5]=PROMEDIO(SI(ESNUMERO(A1:A4);A1:A4))

Op2:

En las celdas [A1:A4] cambia la formula a

=SI(ESNUMERO(TuFormula);TuFormula)

para que te salga FALSO en vez del error.

Saludos,
KL
Post by Carlos García
Excel 2000/2003
Hola a todos
1? Tengo un rango de celdas que presenta unas celdas con valores
provenientes de una division de valores de otras celdas, y otras celdas
que
muestran el error #?DIV/0!.
2? Necesito obtener el promedio de todo el rango, pero al insertar la
funcion promedio, me muestra tambien el error #?DIV/0!
Celda Valor
A1 3
A2 5
A3 #?DIV/0!
A4 #?DIV/0!
A5 #?DIV/0! Esta celda tiene la funcion
PROMEDIO(A1:A4)
4? Obviamente necesito obtener como resultado en A5 el valor 4, y que a
medida que vaya llenandose la planilla con nuevos valores, este resultado
se
actualice;asi si en la celda A3 se muestra luego, el valor 1; en A5 el
resultado seria 3.
Pregunta: ?Como soluciono este problema?
Desde ya Muchisimas Gracias.
Carlos Garcia
Carlos García
2005-09-24 13:53:02 UTC
Permalink
KL

Muchísimas Gracias.

Las soluciones que me proporcionaste funcionaron a la perfección.

Si me permites, me gustaría consultarte donde puedo encontrar información
detallada (una URL) sobre el uso de matrices y como funcionan estas, pues no
me queda muy claro. Yo he intentado trabajarlas, pero me resulta confuso.

Te cuento, que el problema que Vos me has solucionado lo comence a
plantearprimero tratando de verificar si en el rango en cuestión se mostraba
un valor de error; para ello utilice la siguiente función matricial:

{=SI((ESERROR(data)),"SI","NO")}

donde "data" es el nombre del rango. Resultado ... un desastre, no funcionó.

Yo supongo que al utilizar matrices se analiza una a una cada celda
implicada, pero... no estoy seguro.

Bueno quedo a la espera de tu pronta respuesta.

Desde ya Muchísimas Gracias nuevamente.


Carlos García
KL
2005-09-24 17:45:19 UTC
Permalink
Hola Carlos,

Te recomiendo que revises los siguientes enlaces que creo te ayudaran a
entender el tema un poco mejor:

http://office.microsoft.com/es-hn/assistance/CH010037003082.aspx
(Castellano. Explicacion de Microsoft)
http://www.emailoffice.com/excel/arrays-bobumlas.html (Ingles. A mi ver, una
de las mejores explicaciones)
http://www.xldynamic.com/source/xld.SUMPRODUCT.html (Ingles. Como usar las
matrices con la funcion SUMAPRODUCTO. La explicacion es muy grafica)
http://www.excelesp.com/funcvarias01.htm (Castellano. Muchas ejemplos de
formulas matriciales)

Saludos,
KL
Post by Carlos García
KL
Muchisimas Gracias.
Las soluciones que me proporcionaste funcionaron a la perfeccion.
Si me permites, me gustaria consultarte donde puedo encontrar informacion
detallada (una URL) sobre el uso de matrices y como funcionan estas, pues no
me queda muy claro. Yo he intentado trabajarlas, pero me resulta confuso.
Te cuento, que el problema que Vos me has solucionado lo comence a
plantearprimero tratando de verificar si en el rango en cuestion se
mostraba
{=SI((ESERROR(data)),"SI","NO")}
donde "data" es el nombre del rango. Resultado ... un desastre, no
funciono.
Yo supongo que al utilizar matrices se analiza una a una cada celda
implicada, pero... no estoy seguro.
Bueno quedo a la espera de tu pronta respuesta.
Desde ya Muchisimas Gracias nuevamente.
Carlos Garcia
Héctor Miguel
2005-09-24 19:36:20 UTC
Permalink
hola, Carlos !
... rango de celdas... valores provenientes de una division... que muestran el error #¡DIV/0!.
... obtener el promedio de todo el rango, pero... la funcion promedio, me muestra tambien el error #¡DIV/0! [...]
otra posibilidad que no requiere de formulas matriciales [espero le encuentres utilidad]...
=sumar.si(a1:a4,">0")/contar.si(a1:a4,">0")

saludos,
hector.
KL
2005-09-24 20:00:11 UTC
Permalink
Hola chicos,

Quizas solo una advertencia - a diferencia de la funcion PROMEDIO la formula
de Hector Miguel aparte de las celdas vacias y los valores de error tampoco
incluiria en el promedio los valores 0 ni los negativos.

Saludos,
KL
Post by Héctor Miguel
hola, Carlos !
... rango de celdas... valores provenientes de una division... que
muestran el error #¡DIV/0!.
... obtener el promedio de todo el rango, pero... la funcion promedio, me
muestra tambien el error #¡DIV/0! [...]
otra posibilidad que no requiere de formulas matriciales [espero le encuentres utilidad]...
=sumar.si(a1:a4,">0")/contar.si(a1:a4,">0")
saludos,
hector.
Héctor Miguel
2005-09-24 22:54:32 UTC
Permalink
hola, chicos !
KL escribio en el mensaje ...
... una advertencia... la formula de Hector Miguel... tampoco incluiria en el promedio los valores 0 ni los negativos.
es correcta la 'advertencia' de KL :-(
si crees que sea 'perjudicial' para tu modelo el 'no considerar' valores en cero y/o negativos...

op1: usar la formula matricial que propone KL [espero que no la vayas a utilizar en muchas/demasiadas celdas] :)

op2: la siguiente formula no es matricial... incluye los ceros... [pero NO los negativos]...
=sumar.si(a1:a4,">0")/contar(a1:a4)

op3: la siguiente formula [que tampoco es matricial] SI incluye los ceros Y los negativos...
=sumar.si(a1:a4,"<>#¡div/0!")/contar(a1:a4)

solo considera que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' ;)

saludos,
hector.
KL
2005-09-25 17:43:55 UTC
Permalink
Hola chicos,
Post by Héctor Miguel
op3: la siguiente formula [que tampoco es matricial] SI incluye los ceros
Y los negativos...
=sumar.si(a1:a4,"<>#¡div/0!")/contar(a1:a4)
solo considera que mi sistema usa como separador de argumentos a la coma
',' NO al punto y coma ';' ;)
A mi ver, esta ultima formula es sin duda ingeniosa (me la apunto para la
coleccion de los trucos de HM ;-)), rapida y, estrictamente dicho, resuelve
el problema concreto que se ha planteado. Sin embargo tiene las siguientes
limitaciones/riesgos (que IMHO casi la colocan al final de la lista de las
opciones):

1) Solo ignora el error por division por cero, o sea cualquier otro error
(p.ej.: el mas comun #N/A) en el rango usado hara que la formula falle.
2) Solo funcionara en la version castellana del Office.

Saludos,
KL
Héctor Miguel
2005-09-25 19:59:42 UTC
Permalink
hola, chicos !
KL escribio en el mensaje ...
Post by Héctor Miguel
op3: la siguiente formula [que tampoco es matricial] SI incluye los ceros Y los negativos...
=sumar.si(a1:a4,"<>#¡div/0!")/contar(a1:a4)
... formula... ingeniosa... rapida y, estrictamente dicho, resuelve el problema concreto que se ha planteado.
1) Solo ignora el error por division por cero, o sea cualquier otro error (p.ej.: el mas comun #N/A) en el rango usado hara que la formula falle.
2) Solo funcionara en la version castellana del Office.
tratando de mantener el 'principio de KISS'... [IMO sigo en lo correcto si consideramos lo siguiente]...
1) la consulta original 'solicita' -expresamente- omitir el valor de error por divisiones-cero [en castellano]
2) he puesto como primer opcion la propuesta de KL [con las -posibles- 'restricciones' que ya son conocidas] :)
3) otra alternativa mas [por si no se quiere 'arriesgar' el modelo a convencionalismos regionales o idiomas]...
=(sumar.si(a1:a4,">0")+sumar.si(a1:a4,"<0"))/contar(a1:a4)
4) si bien es cierto que 'comparar' cadenas de texto 'provenientes' de valores de error para 'actuar en consecuencia'...
y que excel no provee funciones [no-vba] para 'detectar' idiomas ->donde interviene la posibilidad de diferentes<-
una -posible- 'preparcion' pudiera ser una celda/nombre/... 'base' que se encargue de averiguar si es ingles... o no...
[p.e.] =direccion(1,1,1,0)="r1c1"
a) devuelve 'verdadero' SI el estilo de referencia [NO 'A1'] ES... R1C1 ['usualmente' es usada -solo- por versiones en ingles]
b) SI devuelve 'falso'... existe una alta/mediana/baja probabilidad de que el idioma de excel pudiera ser castellano [u otro] ;)
c) toma nota que la -nueva- propuesta en el punto 3 [creo que] sigue siendo 'fuincional' y es +/- 'universal' ;)
5) como ya he comentado en anteriores ocasiones...
... mientras mas -posibles- 'eventualidades' necesiten ser 'cubiertas'
[incluyendo las que pudiera 'imaginar' un proponente o sean 'explicitamente' planteadas en la consulta]...
menores son la posibilidades de 'mantener delgada/agil/rapida/entendible/descifrable...' una formula :-(
[es decir... 'amplitud de cobertura' es en proporcion inversa directa a la 'delgadez/agiidad/... del proceso']
[parece nuevamente que todo tiene sus 'pros' y 'contras'... el usuario es quien debera decidir 'cual es cual']

saludos,
hector.

Loading...