2011-07-06 16 views
40

Tengo una columna con average(K23:M23) que comienza con #DIV/0! cuando las celdas K23 hasta M23 están vacías. Preferentemente, me gustaría solo hacer el promedio de celdas que contienen valores distintos de cero, no en blanco. Creo que es posible usando el comando de consulta:¿Cómo evito el "# DIV/0"? error en la hoja de cálculo de Google docs?

https://docs.google.com/support/bin/answer.py?hl=en&answer=159999

Pero su ejemplo no me ayuda.

+2

Pertenece a webapps.stackexchange.com. –

+1

Impar 0/3 debería ser 0, no un error de división por cero. –

Respuesta

82

Envuelva su fórmula con IFERROR.

=IFERROR(yourformula) 
+3

Esta parece ser la respuesta más simple, aunque me gustaría que Google agregara funciones para permitir el control de tipos específicos de errores. Envolver la función en un IFERROR genérico hace que sea más difícil depurar si se está produciendo un error diferente. – Brionius

+1

Esto rompe algunos principios muy básicos en lógica y programación. Si sabe qué error/excepción está evitando, entonces debe manejarlo explícitamente de esa manera. La respuesta de Peregrinación es mejor en ese sentido. Pero publicaré otra respuesta más. – Suamere

21

Puede utilizar una instrucción IF para comprobar la célula (s) de referencia y devolver un resultado para cero o en blanco, y en caso contrario devuelve el resultado de la fórmula.

Un ejemplo sencillo:

=IF(B1=0,"",A1/B1) 

devolvería una cadena vacía si el divisor B1 está en blanco o cero; de lo contrario, devuelve el resultado de dividir A1 por B1.

En el caso de la ejecución de un promedio, se puede comprobar para ver si su conjunto de datos tiene un valor:

=IF(SUM(K23:M23)=0,"",AVERAGE(K23:M23)) 

Si no hay nada entrado, o sólo ceros, devuelve una cadena vacía; si uno o más valores están presentes, obtienes el promedio.

0

Dado que explícitamente también está pidiendo que se manejen columnas que aún no se han completado, y supongo que tampoco quiero meterlas si tienen una palabra en lugar de un número, puede considerar esto:

=If(IsNumber(K23), If(K23 > 0, ........., 0), 0) 

Esto solo dice ... Si K23 es un número; Y si ese número es mayor que cero; Luego haz algo ......... De lo contrario, regresa a cero.

En ........., puede poner su ecuación de división allí, como A1/K23, y puede estar seguro de que K23 es un número que es mayor que cero.

Cuestiones relacionadas