使用多个文本条件对两个日期求和

使用多个文本条件对两个日期求和

我想计算U3:U8从“1.4.18”到“31.3.19”范围内的日期(范围为 的日期列)的总和(范围为 的金额列S3:S8),其中只有 Aman、Dell 和 Ivan(范围为 的描述列)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
                        )

相关内容