es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Funciones if anidadas en arrayformula.

Tengo esta fórmula (1) en Google Sheets:

=SI($A2="","",SI(Y(($G2 <= FIN.MES(HOY();-5));($G2 <> "");O($H2 > FIN.MES(HOY();-5);$H2 = "");O($E2 > FIN.MES(HOY();-5);$E2 = ""));1;0))

que quiero convertir a una fórmula de matriz. Intenté esta fórmula (2) pero obtengo un error “#N/A no coincidencia”:

=ARRAYFORMULA (
SIES (
FILA(A:A) = 1; "Contrato publicado, " & TEXT(EDATE(HOY();-5);"mmm-yy");
SI(Y((G:G <= FIN.MES(HOY();-5));(G:G <> "");O(H:H > FIN.MES(HOY();-5);H:H = "");O(E:E > FIN.MES(HOY();-5);E:E = ""));1;0))
)

También intenté esta fórmula (3), pero obtengo un error “Error de análisis de fórmula”:

=ARRAYFORMULA (
SI(FILA(A:A) = 1; "Contrato publicado, " & TEXT(EDATE(HOY();-5);"mmm-yy");
SI(Y(G:G <= FIN.MES(HOY();-5));G:G <> "";SI(H:H > FIN.MES(HOY();-5);H:H = "";SI(E:E > FIN.MES(HOY();-5);E:E = ""));1;0))
)

¿Alguien tiene una idea de lo que estoy haciendo mal, o cómo puedo convertir la fórmula (1) en una fórmula de matriz?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El principal problema con las fórmulas (2) y (3) es que contienen errores de sintaxis. Aquí hay algunas sugerencias para corregir las fórmulas y convertir la fórmula original (1) en una fórmula de matriz:

    1. Para la fórmula (2), cambia IFs por IFS y elimina la coma después del último argumento (1,0)). La fórmula corregida es:
    =ARRAYFORMULA ( 
        IFS(
            FILA(A:A) = 1, "Contrato publicado, " & TEXTO(FECHA.MES.AÑO(HOY(),-5),"mmm-YY"),
            (G:G <= FIN.MES(HOY(),-5)) * (G:G <> ""),  
            (H:H > FIN.MES(HOY(),-5)) + (H:H = ""),
            (E:E > FIN.MES(HOY(),-5)) + (E:E = ""),1,0
        )
    )
    

    Esta fórmula utiliza la función IFS, que te permite probar múltiples condiciones y devolver diferentes resultados según cuál condición sea verdadera. Ten en cuenta que se utilizan los operadores * y + para combinar los resultados de varias pruebas. Además, en esta fórmula no se utiliza la función IF.

    1. Para la fórmula (3), añade paréntesis para agrupar correctamente las condiciones y sustituye las comas por los operadores * y +, como en la fórmula (2). Además, elimina el paréntesis de cierre adicional al final. La fórmula corregida es:
    =ARRAYFORMULA ( 
        SI(FILA(A:A) = 1, "Contrato publicado, " & TEXTO(FECHA.MES.AÑO(HOY(),-5),"mmm-YY"),
        SI((G:G <= FIN.MES(HOY(),-5)) * (G:G <> ""),  
        SI((H:H > FIN.MES(HOY(),-5)) + (H:H = ""),
        SI((E:E > FIN.MES(HOY(),-5)) + (E:E = ""),1,0))))
    
    1. Para convertir la fórmula (1) en una fórmula de matriz, simplemente puedes reemplazar las referencias de celda por referencias de rango. Aquí está la fórmula resultante:
    =ARRAYFORMULA ( 
        SI($A2:$A = "", "",
        SI(Y(($G2:$G <= FIN.MES(HOY(),-5)),($G2:$G <> "")),  
        SI(Y(($H2:$H > FIN.MES(HOY(),-5)),($H2:$H = "")),
        SI(Y(($E2:$E > FIN.MES(HOY(),-5)),($E2:$E = "")),1,0))))
    )
    

    Esta fórmula prueba las condiciones para cada fila en los rangos especificados ($A2:$A, $G2:$G, etc.) y devuelve el resultado como una matriz de 1’s y 0’s. La función ARRAYFORMULA te permite aplicar la fórmula a toda la columna en lugar de copiar y pegar la fórmula en cada fila.

Comments are closed.