Excel公式需求:多条件下获取最大日期对应的时长值
Excel H列公式实现方案
参考表格数据
| A | B | C | StartDateTime | EndDateTime | DurationinMin | Date | Formula Needed |
|---|---|---|---|---|---|---|---|
| 324 | 235062-22-001 | CLEANING | 4/4/2023 1:12 | 4/4/2023 1:36 | 23.09 | 4/4/2023 | |
| 324 | 235062-22-001 | CLEANING | 4/5/2023 0:11 | 4/5/2023 0:18 | 7.15 | 4/5/2023 | |
| 324 | 235062-22-001 | CLEANING | 4/5/2023 1:33 | 4/5/2023 1:57 | 23.03 | 4/5/2023 | |
| 324 | 235062-22-001 | CLEANING | 4/5/2023 17:35 | 4/5/2023 17:59 | 23.97 | 4/5/2023 | |
| 324 | 235062-22-001 | CLEANING | 4/5/2023 21:06 | 4/5/2023 21:59 | 53.26 | 4/5/2023 | |
| 324 | 235062-22-001 | CLEANING | 4/6/2023 0:12 | 4/6/2023 0:55 | 43.15 | 4/6/2023 | 43.15 |
| 324 | 235062-22-001 | WASHING | 4/12/2023 11:23 | 4/12/2023 12:49 | 85.56 | 4/12/2023 | 85.56 |
| 324 | 235062-22-001 | PEALING | 4/13/2023 5:03 | 4/13/2023 6:01 | 57.82 | 4/13/2023 | 57.82 |
需求逻辑
在H列编写公式,实现:
- 针对B列(编号)与C列(任务类型)的每一组数据组合,找到该组合下Date列数值最大的行
- 返回该行对应的DurationinMin列值(无论组合出现一次还是多次,均返回对应值)
公式方案
方案1:适用于Excel 365/2021(支持动态数组)
在H2单元格输入以下公式,下拉填充或自动溢出:=XLOOKUP(MAXIFS(G:G,B:B,B2,C:C,C2)&B2&C2,G:G&B:B&C:C,F:F,"")
逻辑说明:
MAXIFS(G:G,B:B,B2,C:C,C2):筛选出当前行B+C组合对应的最大Date值G:G&B:B&C:C:将Date、B、C列合并为唯一标识,确保匹配到最大日期对应的目标行XLOOKUP:通过合并标识精准定位,返回对应的DurationinMin值
方案2:适用于旧版Excel(不支持动态数组)
在H2单元格输入以下数组公式,按Ctrl+Shift+Enter确认后下拉填充:=INDEX(F:F,MATCH(MAX(IF((B:B=B2)*(C:C=C2),G:G,0))&B2&C2,G:G&B:B&C:C,0))
逻辑说明:
IF((B:B=B2)*(C:C=C2),G:G,0):筛选当前B+C组合的所有Date值,非目标组合行返回0MAX(...):提取该组合的最大Date值MATCH:找到「最大Date+B+C」组合对应的行号INDEX:根据行号提取目标DurationinMin值
效果验证
- 对于CLEANING组合,最大Date为4/6/2023,对应DurationinMin为43.15,所有CLEANING行的H列均返回43.15
- WASHING、PEALING组合各出现一次,直接返回自身的85.56和57.82,与示例效果完全匹配
内容的提问来源于stack exchange,提问作者Sheeths82
相关产品推荐
相关产品推荐

