MEDIANA de Excel en ARRAY con múltiples condicionales usando funciones SI y Y

MEDIANA de Excel en ARRAY con múltiples condicionales usando funciones SI y Y

Quiero determinar una MEDIANA de valores en una columna en función del cumplimiento de las condiciones endosotras columnas. Estoy usando MS Excel.

Sé que tengo que procesar la función MEDIANA como una ARRAY (ctrl + shft + enter) usando una función IF, y esto funciona bien si solo uso 1 condición dentro de mi declaración IF. Sin embargo, tan pronto como intento incorporar2condiciones usando la función AND, obtengo una mediana de 0 (es decir, no funciona).

¿Cómo calculo una mediana de valores en una columna en función de las condiciones coincidentes de más de una otra columna?

Ejemplo:

Digamos que quiero encontrar la mediana de los valores en C cuando A = 1 y B = x:

A   B   C
1   x   10
1   x   20
1   y   30
1   y   40
2   x   10
2   x   20
2   y   30
2   y   40
3   x   10
3   x   20
3   y   30
3   y   40
4   x   10
4   x   20
4   y   30
4   y   40
5   x   10
5   x   20
5   y   30
5   y   40

#Here is my attempt using IF and AND:
{=MEDIAN(IF(AND(A2:A21=1,B2:B21="x"),C2:C21))}    #DEOSN'T WORK: should be 15, but it's 0

#subcomponents of above work fine on their own:
{=MEDIAN(IF(A2:A21=1,C2:C21)) }    #equals 25 as expected
{=MEDIAN(IF(B2:B21="x",C2:C21))}   #equals 15 as expected

¿Cómo hago para que esto funcione y/o hay otro enfoque que debería utilizar?

Respuesta1

Evite la ANDfunción, use IFmensajes anidados en su lugar.

Específicamente:

=MEDIAN(IF(A2:A21=1,IF(B2:B21="x",C2:C21)))

El problema es que ANDno funciona como se pretende en un contexto de matriz: no genera ANDcada par de elementos y produce una matriz, sino que combina con todos los elementos de ambas matrices para dar un único resultado escalar.

Su fórmula original evalúa la ANDllamada completa a una única salida de " FALSE" (porque no es el caso que todos los elementos en ambas matrices satisfagan la comparación).

Respuesta2

No sé por qué funciona, pero después de probar descubrí que lo siguiente logra mi objetivo:

{=MEDIAN(IF((A2:A21=1)*(B2:B21="x"),C2:C21))}   #gives correct 15

(Nuevamente, recuerde procesarlo como una matriz usando ctrl + shft + enter)

Mi conjetura es que la ANDfunción solo produce un único TRUEvalor FALSEpredeterminado y, por lo tanto, no puede funcionar en este contexto (lo que requiere producir una matriz de 1 y 0). Sin embargo, si proceso cada columna como su propia matriz, estoy produciendo una cadena de unos y ceros para cada subcondición. Si luego multiplico varias matrices condicionales, el resultado es en sí mismo una matriz de unos y ceros en la que los unos solo existen cuando la condición deseada era verdadera para ambas subcondiciones respectivas.

Estoy seguro de que alguien puede confirmar/explicar esto en un comentario.

información relacionada