我想計算從“1.4.18”到“31.3.19”範圍內僅 Aman、Dell 和 Ivan 的U3:U8
日期(範圍中的日期列)的總和(範圍中的金額列。S3:S8
T3: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
)