2009-04-12 37 views
11

estoy tratando de calcular la mediana condicional de un gráfico que tiene este aspecto:media condicional en MS Excel

A | B 
------- 
x | 1 
x | 1 
x | 3 
x | 
y | 4 
z | 5 

estoy usando MS Excel 2007. Soy consciente de la AVERAGEIF() declaración, pero no hay equivalente para Median. El truco principal es que hay filas sin datos, como la cuarta "a" de arriba. En este caso, no quiero que esta fila sea considerada en absoluto en los cálculos.

googlear ha sugerido lo siguiente, pero Excel no aceptará el formato de fórmula (tal vez porque es 2007?)

=MEDIAN(IF((A:A="x")*(A:A<>"")), B:B) 

Excel da un error diciendo que hay algo mal con mi fórmula (algo que ver con el * en la condición) que también había intentado lo siguiente, pero cuenta celdas en blanco como 0 de en los cálculos:

=MEDIAN(IF(A:A = "x", B:B, "") 

soy consciente de que esas fórmulas emiten "conjuntos" de Excel, lo que significa que uno debe entrar "Ctrl -shift-enter "para que funcione correctamente.

¿Cómo puedo hacer una evaluación condicional y no considerar las celdas en blanco?

Respuesta

8

Declaraciones anidadas si.

=MEDIAN(IF(A:A = "x",IF(B:B<>"",B:B, ""),"") 

No hay mucho que explicar: comprueba si A es x. Si es así, verifica si B no está en blanco. Cualquier cosa que coincida con ambas condiciones se calcula como parte de la mediana.

Dado el siguiente conjunto de datos:

A | B 
------ 
x | 
x |  
x | 2 
x | 3 
x | 4 
x | 5 

La fórmula anterior devuelve 3.5, que es lo que creo que quería.

+1

Tuve que hacer de esto una fórmula de matriz para que funcione. Es decir. '{= MEDIANO (IF (A: A =" x ", IF (B: B <>" ", B: B))} funciona para mí (las declaraciones else no son necesarias). ¡Gran respuesta, sin embargo! – Therkel

4

Usa la fórmula Googled, pero en lugar de golpear Introduzca después de escribir en la barra de fórmulas, golpeó Ctrl +Shift +Introduzca simultáneamente (en lugar de Introduzca). Esto coloca corchetes alrededor de la fórmula y la tratará como una matriz.

Tenga cuidado, si edita, no puede pulsar Introduzca nuevamente o la fórmula no será válida. Si está editando, debe hacer lo mismo cuando termine (Ctrl + Shift + Ingrese).

2

Hay otra manera que no involucra la fórmula de matriz que requiere la operación CtrlShiftEnter. Utiliza la función Aggregate() que se ofrece en Excel 2010, 2011 y posteriores. El método también funciona para mínimos, máximos y varios percentiles. The Aggregate() permite ignorar los errores, por lo que el truco es hacer que todos los valores que no son necesarios provoquen errores. La forma más fácil es hacer la tarea establecida arriba es:

= Agregado (16,6, (B: B)/((A: "x") * (B: B <> "")) , 0.5)

El primer y último parámetro configuran la escena para hacer un percentil 50%, que es una mediana, el segundo dice ignorar todos los errores (incluido DIV # 0) y el tercero dice seleccionar los datos de la columna B y dividir por un número que es uno para todos los valores no vacíos que tienen una x en la columna A, y un cero en caso contrario. Los ceros crean una excepción de división por cero y serán ignorados porque a/1 = a y a/0 = Div # 0

La técnica funciona para cuartiles (con un valor de p apropiado), todos los demás percentiles por supuesto, y para max y min usando la función grande o pequeña con argumentos apropiados.

Este es un constructo similar a los trucos de Sumproduct() que son tan populares, pero que no se pueden usar en ningún cuantil o valor máximo mínimo ya que produce ceros que parecen números a estas funciones.

Bob Jordan

+0

Si está buscando evitar arreglos (como normalmente lo hago), la solución de Bob funciona bien y se puede personalizar con tantos criterios como sea necesario. – NikG

0

Tal vez para generalizar un poco más, en lugar de esto ...

{=MEDIAN(IF(A:A="x",IF(B:B<>"",B:B)))} 

... se puede utilizar lo siguiente:

{=QUARTILE.EXC(IF(A:A="x",IF(B:B<>"",B:B)),2)} 

Tenga en cuenta que los corchetes se refieren a una fórmula de matriz; no se debe colocar los soportes en su fórmula, pero presione CTRL + SHIFT + ENTER (o CMD + SHIFT + ENTER en MacOS) al entrar en la fórmula

entonces se podría conseguir con facilidad el primer y tercer cuartil alterando el último número de a o respectivamente. QUARTILE.EXC es lo que la mayoría de los programas estadísticos comerciales (por ejemplo, Minitab) usan por cierto. La función "regular" es QUARTILE.INC, o para las versiones anteriores de Excel, solo QUARTILE.

Cuestiones relacionadas