我的问题是我需要引用一个单元格(A1),它可以是可以在 L 列中找到的状态的名称,也可以是“所有状态”,然后我想包含 L 列的所有结果。我不知道如何包含这个。
=SUMPRODUCT(--(IF(A1="All States",Data!$L:$L,Data!$L:$L=A1)),Data!Q:Q)
我想基于上述添加更多标准,所以我不想沿着将 sumproduct 嵌入 if 函数的路线走下去,因为公式很快就会变得太笨拙。
我的问题是我需要引用一个单元格(A1),它可以是可以在 L 列中找到的状态的名称,也可以是“所有状态”,然后我想包含 L 列的所有结果。我不知道如何包含这个。
=SUMPRODUCT(--(IF(A1="All States",Data!$L:$L,Data!$L:$L=A1)),Data!Q:Q)
我想基于上述添加更多标准,所以我不想沿着将 sumproduct 嵌入 if 函数的路线走下去,因为公式很快就会变得太笨拙。
你有很多选择。使用您的初始公式,我会将其调整为
(A) =SUMPRODUCT((IF($A$1="All States",1,($L$2:$L$11=$A$1)))*($Q$2:$Q$11))
但这需要作为数组公式输入,因此ENTER您需要CONTROL++SHIFT来确认,而不是只用 确认ENTER。当 { } 出现在您的公式周围时,您将知道您已经做对了。请注意,它们不能手动添加。
我相信会更快的非数组类型公式是查看您的两个选项。您正在处理单个状态或所有状态。设置IF
检查以确定是否需要对所有列 Q 求和,或者是否需要从 Q 列中查找单个值。我使用了以下公式:
(B) =IF(A1="all states",SUM($Q$2:$Q$11),INDEX($Q$2:$Q$11,MATCH($A$1,$L$2:$L$11,0)))
有点作弊但简化了事情,是将最终状态添加到 L 中列表的底部,并调用“所有状态”。在 Q 所在的相应行中=sum(First Cell:Last Cell)
。如果你这样做,那么你可以使用以下公式:
(C) =SUMPRODUCT(($L$2:$L$12=$A$1)*($Q$2:$Q$12))
那也是其他选择,只是想我会展示一些选择。