同时「量大」又「发货快」的订单有几张(SUMPRODUCT)

困难 数学
题目说明
提示 0/4
官方解法 2
–
测试用例
1
2
3
重置
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在加载交互式电子表格...
正在准备单元格数据与公式求解引擎
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。

题目

题目说明

采购要找出「超过 100 件、又在 5 天内发货」的订单。件数在 B2:B6、发货天数在 C2:C6,门槛写在表上(E1、E2)。把数量填进 Both 单元格 F3。

一条公式要同时处理两个条件——不能用辅助列,也不能把两个计数相加。

题目数据

用表格查看整份数据(可选中、可复制)
这道题的数据表
ABCE
1OrderUnitsDays to shipUnits > 100
2SO-11204Days < 5
3SO-2809Both
4SO-33003
5SO-4607
6SO-52102

知识点

SUMPRODUCT((B2:B6>100)*(C2:C6<5)) 先把两个 TRUE/FALSE 数组相乘。相乘就是 AND(1*1 = 1,任何一边是 0 就是 0),SUMPRODUCT 再把乘积求和,得到同时成立的行数。COUNTIFS 用条件字符串做同一件事,比较式简单时更好读。

解题思路

答案写在 F3。提交时我们会换 3 组输入重跑你的公式,写死数字一定过不了 —— 公式必须跟着单元格走。

  1. 目标单元格是 F3
  2. 先做出两个 TRUE/FALSE 数组:B2:B6>100 与 C2:C6<5
  3. 相乘之后只留下两边都成立的行
  4. 公式形状:=SUMPRODUCT((?)*(?))

官方解法

展开 2 种解法(建议先自己试一次)

解法 1:两个布尔数组相乘

=SUMPRODUCT((B2:B6>100)*(C2:C6<5))

SO-1(120, 4)、SO-3(300, 3)、SO-5(210, 2)都成立,1+0+1+0+1 = 3。相乘是 AND,SUMPRODUCT 负责计数。

解法 2:COUNTIFS 搭配两个数值条件

=COUNTIFS(B2:B6, ">100", C2:C6, "<5")

用条件字符串得到同样答案。门槛单纯时 COUNTIFS 更好读;条件里需要函数(LEFT、MONTH、ISNUMBER)时,SUMPRODUCT 才写得出来。

函数指南

相关 Excel 练习

常见问题

怎么统计同时符合两个数值条件的行?

=SUMPRODUCT((区域1>a)*(区域2<b)),或 =COUNTIFS(区域1, ">"&a, 区域2, "<"&b)。两者都只算全部条件都成立的行。

为什么 SUMPRODUCT 一定要那些括号?

少了括号,比较式的结合方式会不同:SUMPRODUCT(B2:B6>100) 只会评估第一个元素。把每个比较括起来,才能先得到完整数组再相乘。