我正在努力将 SUMIFS 公式与 SUBTOTAL 结合起来。正如您在图片中看到的,当 B 列中的值高于 50 且低于 500 时,我的 SUMIFS 公式(以黄色突出显示,公式粘贴为其下方的文本)会对 C 列求和。
我怎样才能编写一个 SUBTOTAL 公式,使其仅在 B 列值高于 50 且低于 500,并且仅属于 A 类时才对 C 列值求和(橙色,公式粘贴为其下方的文本)?
两个公式:=SUMIFS(C8:C25,B8:B25,"<"&B2,B8:B25,">"&B1) =SUBTOTAL(109,C8:C25)
答案1
您可以向 SumIfs 公式添加另一个条件
=SUMIFS(C8:C25,B8:B25,"<"&B2,B8:B25,">"&B1,A8:A25,"A")
或者使用其他单元格引用代替文本“A”。
答案2
你可以尝试这个公式,但它似乎太长了
答案3
当您过滤数据集时,需要使用 SUBTOTAL,否则您也可以通过使用 SUMPRODUCT 来实现:
怎么运行的:
- 在单元格 D16 和 E16 中输入条件。
- 对单元格 F16 应用数据验证。
- 使用列表并添加 A、B、C、D 和空白。
单元格 G16 中的公式:
=IF(ISBLANK(F16),"",SUMPRODUCT((A17:A32=F$16)*(B17:B32<E$16)*(B17:B32>D$16)*(C17:C32)))
单元格 C36 中的公式:
=IF(ISBLANK(F16),"",SUMPRODUCT(SUBTOTAL(9,OFFSET(C17:C32,ROW(C17:C32)-ROW(C17),0,1,1)),--(B17:B32>D16)))
现在选择 A16:C32 并应用 B 类别过滤器。
从 F16 的下拉菜单中选择类别 B。
您会发现这两个公式产生相同的结果。
根据需要调整公式中的单元格引用。
答案4
我能够找到答案。但为了防止其他人也想找到答案,我最终使用了以下公式。
=SUMPRODUCT(SUBTOTAL(109,OFFSET(C$8:C25,ROW(C$8:C25)-MIN(ROW(C$8:C25)),,1)),--($B$8:$B25>B1),--($B$8:$B25