Excel: fórmula de matriz dentro de otra fórmula


2

enter image description here

B columna copia los valores de la columna A y si no es el valor mínimo en el rango dado, entonces agrega 1, de lo contrario queda como está con: =IF(NOT($A2=MIN($A$2:$A$7)),$A2+1,$A2)

C2 encuentra la celda con el valor mínimo distinto de cero del rango A2:A7 con =MIN(IF(A2:A7>0,A2:A7)) (con CTRL CAMBIO ENTRAR ).

¿Es posible usar esta fórmula de matriz como una subexpresión en otra fórmula? Digamos que quiero AGREGAR 1 si el valor en A2:A7 ¿NO es el valor mínimo de cero?

Así que en el ejemplo anterior no se agregará nada a A6. Y D2:D7 Los valores serán:

6    
5    
4    
3    
1    
1

¿Quiere decir que quiere combinar las dos fórmulas mostradas anteriormente?
Rajesh S

Respuestas:


3

No estoy seguro de si es posible usar esa fórmula de matriz particular como una subexpresión en otra fórmula.

Sin embargo, hay una solución alternativa. Solo necesitas un no Fórmula de matriz que calcula el valor mínimo distinto de cero.

Tal fórmula puede ser creada con el SMALL() función:

=SMALL($A$2:$A$7,COUNTIF($A$2:$A$7,0)+1)


Los conductores a la solución de trabajo.

Worksheet Screenshot

donde la formula en D2 es solo la formula en B2 con el MIN() función reemplazada por la SMALL() función:

=IF(NOT($A2=SMALL($A$2:$A$7,COUNTIF($A$2:$A$7,0)+1)),$A2+1,$A2)

Tenga en cuenta que esta fórmula es no matriz ingresada!


Prefiero escribir estos tipos de fórmulas refactorizadas para que no usen un NOT() y la referencia está fuera de la IF():

=$A2+IF($A2=SMALL($A$2:$A$7,COUNTIF($A$2:$A$7,0)+1),0,1)

Mi verdadera factorización favorita, sin embargo, es esta:

=$A2+($A2<>SMALL($A$2:$A$7,COUNTIF($A$2:$A$7,0)+1))

Desafortunadamente, a mucha gente le resulta tan difícil de leer, así que tiendo a no usarlo.


0

La respuesta publicada por @RobinCTS me inspiró a hacer las correcciones útiles en las dos fórmulas interesantes.

enter image description here

Su primera fórmula debe escribirse como se muestra a continuación en la celda C2 para encontrar el mínimo no cero.

{=MIN(IF(A2:A7>0,A2:A7,A2+1))}

En la celda D2 escribe esta fórmula de matriz a agrega 1 si no es mínimo no cero &erio; llenalo abajo

{=IF(A2<>MIN(IF(A2:A7>0,A2:A7,A2+1)),A2+1,A2)}

nótese bien Las dos fórmulas anteriores son una fórmula matricial, así que finalice ambas con Ctrl + Shift + Enter.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.