¿Es posible utilizar una función de Excel para evaluar criterios utilizando cadenas similares a como lo hacen CONTAR.SI() y SUMIFS()?

¿Es posible utilizar una función de Excel para evaluar criterios utilizando cadenas similares a como lo hacen CONTAR.SI() y SUMIFS()?

Mi problema es que tengo un criterio escrito como una cadena en una celda, por ejemplo ">= 50" está en la celda A1. Puedo usar esto con SUMIFS y COUNTIFS fácilmente ya que estas funciones toman los criterios booleanos como una cadena. Entonces CONTAR.SI(rango, A1) me diría cuántos elementos en el rango son mayores o iguales a 50.

También quiero poder hacer esto con una función similar a IF (solo algo que evalúe una prueba lógica), pero parece que la única forma de evaluar un valor booleano en la función IF es usar las operaciones booleanas reales y no una cuerda. Entonces quiero el equivalente de IF(rango >= 50, 1, 0) cuando se aplica a una matriz (por lo que el resultado debería ser un rango de 1 y 0 dependiendo de si se cumple la condición), pero en cambio la sintaxis sería algo como IF_new(rango, ">= 50", 1, 0).

Mi objetivo final es utilizar la función de estilo IF_new(...) dentro de SUMPRODUCT() (como un indicador para qué filas se incluirán). Así que estoy buscando específicamente una manera de hacer esto usando ">= 50" (para que el booleano esté contenido dentro de una cadena y se evalúe de esa manera como en CONTAR.SI y SUMIFS) dentro de la función, en lugar de solo >=50.

¿Es esto posible sin usar VBA? ¡Gracias de antemano!

Respuesta1

No existe un método estándar para cambiar =">=50"una celda a una declaración IF booleana. Una referencia a la celda que contiene=">=50" poderse pueden usar en CONTAR.SI o SUMAR.SI, pero normalmente no funcionan bien en fórmulas SUMAPRODUCTO.

Utilice OFFSET para aislar cada celda en un rango como un singularrangocontra los criterios como texto en un COUNTIF para proporcionar un On/Off en una operación SUMPRODUCT.

=SUMPRODUCT(COUNTIF(OFFSET(A1, ROW(1:6), 0, 1, 1), A1), B2:B7, C2:C7)

ingrese la descripción de la imagen aquí

Probablemente también puedas lograr esto con EVALUAR y rangos con nombre.

información relacionada