「1.4.18」から「31.3.19」までの範囲の Aman、Dell、Ivan (範囲 の列 説明 ) のみのU3:U8
日付 (範囲 の列 Date ) からの合計 (範囲 の列 Amount ) を計算します。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)
)
)
以前のバージョンでもこれは実行できますが、少し複雑です。
まず、2つ作成します名前付き数式:
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
)
2番目の式では:
numWords
は、「単語を含む」セル内の単語の数です。numWords
seq
に等しい数値の配列を返します (例: {1,2,3}
) 。有効な検索の配列を単一の値列に変換するために使用されます (例:最初の数式
MMULT
の と同様)。BYROW
テキスト文字列をコンマで分割するには:(TEXTSPLIT
関数を置き換える
TRIM(
MID(
SUBSTITUTE(
$B$12,
",",
REPT(" ", 99)
),
IF(seq = 1, 1, (seq - 1) * 99),
99
)