Devuelve N resultados coincidentes de una matriz usando la función OR

Devuelve N resultados coincidentes de una matriz usando la función OR

Estoy buscando crear una fórmula de Excel que se ejecute a través de una matriz y devuelva N resultados coincidentes. es decir, tendría esta fórmula primero en la celda A1 (por ejemplo) y devolvería el primer resultado coincidente. Cuando lo arrastro hacia abajo a las celdas A2, A3, etc., devuelve el segundo y tercer resultado coincidente respectivamente. Actualmente tengo una fórmula que hace esto:

INDEX(Sheet2!$B$2:$B$10081,AGGREGATE(15,3,(Sheet2!$AA$2:$AA$10081="TRUE")/(Sheet2!$AA$2:$AA$10081="TRUE")*(ROW(Sheet2!$AA$2:$AA$10081)-ROW(Sheet2!$AA$1)),ROWS($R$73:R73))))

Sin embargo, estoy tratando de usar la función O, por lo que en lugar de simplemente verificar si un rango de celdas es VERDADERO o FALSO (esto se hace actualmente con celdas/columnas auxiliares), solo quiero poder verificar el rango para ver si cumple cualquiera de las siguientes condiciones:

  • Celdas cuyo valor sea superior a 999999
  • Celdas cuyo valor es 0
  • Celdas cuyo valor es negativo (<0)

Mi intento está a continuación:

INDEX(Sheet2!$A$2:$A$10081,AGGREGATE(15,3,(OR(Sheet2!$B$2:$B$10081>999999,Sheet2!$B$2:$B$10081=0,Sheet2!$B$2:$B$10081<0))/(OR(Sheet2!$B$2:$B$10081>999999,Sheet2!$B$2:$B$10081=0,Sheet2!$B$2:$B$10081<0))*(ROW(Sheet2!$B$2:$B$10081)-ROW(Sheet2!$B$1)),ROWS($P$73:P73))))

Sin embargo, esto no funciona porque el tercer argumento de agregado() debe ser una matriz y utilicé una función OR que se evalúa como booleana. Dicho esto, no estoy seguro de cómo integrar correctamente las funciones OR para verificar las 3 condiciones anteriores.

Respuesta1

La adición hará unOfunción equivalente en cada entrada. Entonces:

(myRng>999999)+(myRng<=0)

devolverá una serie de {1..0}dependiendo de si se cumplen sus criterios.

Para crear la matriz para la AGGREGATEfunción, algo como:

1/((myRng>999999)+(myRng<=0))*myRng

Respuesta2

Si está utilizando Excel 365 y tiene acceso a la función FILTRO, puede usar FILTRO para devolver la matriz. Cada condición OR puede estar entre paréntesis y separada con un +, como se describe aquí:

Función FILTRO - Soporte de Office

Específicamente:

...estamos usando la función FILTRO con el operador de suma (+) para devolver todos los valores en nuestro rango de matriz (A5:D20) que tienen manzanas O están en la región Este...

Sin saber demasiado sobre sus datos, algo similar a esto debería devolver la matriz correcta (que en realidad no necesita agregarse en tamaño pequeño si desea devolver todas las filas coincidentes).

=FILTER(Sheet2!$A$2:$A$10081,(Sheet2!$B$2:$B$10081>999999)+(Sheet2!$B$2:$B$10081=0)+(Sheet2!$B$2:$B$10081<0))

SIN EMBARGO... Acabo de ver tu comentario diciendo que esto se usaría en Excel 2016, por lo que FILTRO no funcionará (lo dejaré en la respuesta en caso de que ayude a otros).

En Excel 2016 (y en Excel 365), puede usar Power Query, ya que parece que en realidad solo está intentando encontrar filas que cumplan con criterios específicos.

Creé algunos datos de muestra:

ingrese la descripción de la imagen aquí

Ahora simplemente seleccione cualquier celda de los datos y use Datos>Obtener y transformar datos>De tabla/rango para abrir el Editor de Power Query con una consulta sobre sus datos.

En el Editor de Power Query, filtre el valor según los criterios que desee usar:

ingrese la descripción de la imagen aquí

Ahora use Inicio>Cerrar y cargar para volver a colocar los datos en el libro de trabajo:

ingrese la descripción de la imagen aquí

El último paso es asegurarse de que la consulta se actualice en un intervalo adecuado.

Coloque el cursor en los resultados de la consulta y vaya a Consulta>Propiedades y configure las propiedades de actualización como prefiera:

ingrese la descripción de la imagen aquí

información relacionada