
Estoy intentando configurar una fórmula en Excel que analizará un rango de datos que tiene fechas especificadas en c7:c30 y categorías Activa-"A" y Completada-"C" en L7:L30. Estoy intentando que Excel mire cada fila individualmente y compare si las fechas están entre las fechas del trimestre especificadas del 1/1/12 (B38) y el 31/03/12 (C38) (el primer trimestre del año), y si Si se cumple esta condición, cuente aquellos que están marcados con "A" para activos.
Se me ocurrió lo siguiente que no funciona, ya que solo mira la primera fecha especificada y cuenta todo lo marcado con "A" si la primera fecha coincide con las especificaciones del primer trimestre.
{=(SI(($C$7:$C30>=$B$39)*($C$7:C$30<=$C$39),CONTAR.SI($L$7:$L30,"a"),0)) }
Ayúdenme a descubrir qué hay de malo en esta fórmula: no analiza cada fila individualmente y, en cambio, cuenta todo lo indicado con A si la primera fecha se considera verdadera en comparación con la declaración if presentada.
Lo siento, no soy muy bueno en Excel, se agradece cualquier ayuda.
¡Gracias!
Respuesta1
Creo que podrías tener un problema con la forma en que estructuraste la fórmula matricial. Simplemente desempaquetando su declaración, estará construyendo una matriz que tendrá tantas filas como tenga, y cada fila contendrá el resultado de CONTAR.SI($L$7:$L30,"a") si se cumple la condición de fecha. , o 0.
Dado que no está aplicando ninguna función de conteo que envuelva todo el lote, la función devolverá la matriz completa pero solo verá el primer resultado en la celda, razón por la cual parece estar controlada únicamente por una celda.
Una forma alternativa de abordar esto sería la siguiente:
Tus tres pruebas (para cada fila) son:
- fecha >= B38
- fecha <= C38
- condición = "a"
y solo quieres contar donde los tres son verdaderos.
Convenientemente, los valores verdaderos se evalúan como 1 y los falsos como 0, por lo que podemos usar una operación de multiplicación para obtener lo que queremos.
Entonces, para una sola fila querrás hacer lo siguiente
(C7 >= B38) * (C7 <= C38) * (L7="a")
(y obviamente, expandirlo a C7:C30, etc. para cubrir las filas de interés)
Para luego contraerlo en un solo valor, debe envolver todo en una declaración SUM() que simplemente revisará la lista y sumará todos los valores.
SUM( (C7:C30>B39) * (C7:C30<=C39) * (L7:L30="a") )
Además, si tiene curiosidad por ver, regrese a su fórmula original y finalice con una declaración de suma(), y obtendrá el resultado que se muestra como la cantidad de veces que su estado se establece en "a", multiplicado por el número de filas que cumplieron la condición de fecha.
(nota: las fórmulas de matriz requieren un poco de comprensión al principio, pero una vez que las entiendes, funcionan muy bien. Originalmente leí sobre ellas enhttp://www.cpearson.com/excel/ArrayFormulas.aspxlo cual sigue siendo una explicación bastante buena si todo sigue siendo confuso...)