具有多個文字條件的兩個日期之間的總和

具有多個文字條件的兩個日期之間的總和

我想計算從“1.4.18”到“31.3.19”範圍內僅 Aman、Dell 和 Ivan 的U3:U8日期(範圍中的日期列)的總和(範圍中的金額列。S3:S8T3:T8

具有多個文字條件的兩個日期之間的總和

答案1

如果您有 Microsoft 365,則可以使用下列公式:

=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)
    )
)

這可以在早期版本中完成,但有點複雜。

首先,創建兩個命名公式:

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))

然後你可以使用這個公式:

=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
)

在此輸入影像描述

在第二個公式中:

numWords是「包含單字」儲存格中的單字數,
seq傳回等於 numWords 的數字陣列(例如:{1,2,3}
MMULT,用於將有效搜尋陣列轉換為單列值(例如,與BYROW第一個公式中的類似)。

若要依逗號分割文字字串:(替換TEXTSPLIT函數

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

相關內容