Suma entre dos fechas con múltiples criterios de texto

Suma entre dos fechas con múltiples criterios de texto

Quiero calcular la suma (de la columna Monto en el rango U3:U8) desde la fecha (columna Fecha en el rango S3:S8) en el rango de "1.4.18" a "31.3.19" de solo Aman, Dell e Ivan (Descripción de columna en el rango T3:T8.

Suma entre dos fechas con múltiples criterios de texto

Respuesta1

Si tiene Microsoft 365, aquí tiene una fórmula que funcionará:

=SUM(
    FILTER(
        $C$3:$C$8,
        BYROW(
            $B$3:$B$8,
            LAMBDA(arr,
                OR(ISNUMBER(SEARCH(TEXTSPLIT(B12, ","), arr)))
            )
        ) * ($A$3:$A$8 >= $A$12) * ($A$3:$A$8 <= A13)
    )
)

Esto se puede hacer con versiones anteriores, pero es un poco más complicado.

Primero, crea dosFórmulas nombradas:

numWords Refers To: =LEN(Sheet9!$B$12)-LEN(SUBSTITUTE(Sheet9!$B$12,",",""))+1

seq      Refers To: =ROW(INDEX(Sheet9!$A:$A,1):INDEX(Sheet9!$A:$A,numWords))

Luego puedes usar esta fórmula:

=SUM(
    MMULT(
        ISNUMBER(
            SEARCH(
                TRANSPOSE(
                    TRIM(
                        MID(
                            SUBSTITUTE(
                                $B$12,
                                ",",
                                REPT(" ", 99)
                            ),
                            IF(seq = 1, 1, (seq - 1) * 99),
                            99
                        )
                    )
                ),
                $B$3:$B$8
            )
        ) * ($A$3:$A$8 >= $A$12) * ($A$3:$A$8 <= $A$13),
        seq ^ 0
    ) * $C$3:$C$8
)

ingrese la descripción de la imagen aquí

En la segunda fórmula:

numWordses el número de palabras en la celda "Contiene palabras"
seqdevuelve una matriz de números igual a numPalabras (por ejemplo: {1,2,3})
MMULTse utiliza para convertir las matrices de búsquedas válidas en una sola columna de valores (por ejemplo, similar a la BYROWde la primera fórmula).

Para dividir la cadena de texto entre comas:(reemplazando la TEXTSPLITfunción

TRIM(
                        MID(
                            SUBSTITUTE(
                                $B$12,
                                ",",
                                REPT(" ", 99)
                            ),
                            IF(seq = 1, 1, (seq - 1) * 99),
                            99
                        )

información relacionada