技术问询:日期数组最值查找及Google Sheets按日期提取C列最值填充F/G列
我来帮你解决这两个问题哈~
一、日期数组中查找最小值/最大值的通用实现方法
不同编程语言里处理日期数组的逻辑大同小异,核心是让日期能被正确比较:
- Python:如果数组里是
datetime对象,直接用内置的min()和max()函数就能搞定,比如:
如果是字符串格式的日期,先转成from datetime import datetime date_array = [datetime(2024, 5, 1), datetime(2024, 3, 15), datetime(2024, 6, 20)] min_date = min(date_array) max_date = max(date_array)datetime对象再比较:date_str_array = ["2024-05-01", "2024-03-15", "2024-06-20"] date_array = [datetime.strptime(d, "%Y-%m-%d") for d in date_str_array] min_date = min(date_array) - JavaScript:数组里的
Date对象可以直接用Math.min()和Math.max()(注意要展开数组),或者用数组的reduce()方法:const dateArray = [new Date(2024, 4, 1), new Date(2024, 2, 15), new Date(2024, 5, 20)]; const minDate = new Date(Math.min(...dateArray)); const maxDate = new Date(Math.max(...dateArray)); - 表格工具(Excel/Google Sheets):如果是日期组成的单元格区域,直接用
MIN(区域)和MAX(区域)就能返回最小/最大日期,比如=MIN(A1:A10)。
二、Google Sheets中按日期提取C列最值到F、G列的最优公式
假设你的表格里A列是日期列,分两种场景给出最优公式:
1. 手动输入目标日期到F列,匹配对应最值
- F列放目标日期,G列(对应C列最小值)用公式:
=MINIFS(C:C, A:A, F2) - H列(对应C列最大值)用公式:
输入完公式后下拉填充所有行就行,=MAXIFS(C:C, A:A, F2)MINIFS和MAXIFS是专门按条件找最值的函数,逻辑清晰,计算效率也高。
2. 自动提取唯一日期+批量匹配最值(一次性搞定)
如果F列还没有目标日期,想自动提取A列的唯一日期并批量生成对应最值,可以用数组公式:
- 先在F2单元格生成唯一日期列表:
=UNIQUE(FILTER(A:A, A:A<>"")) - 然后在G2单元格用数组公式批量计算对应最小值:
=ARRAYFORMULA(IF(F2:F="",,MINIFS(C:C, A:A, F2:F))) - 在H2单元格用数组公式批量计算对应最大值:
这样只需要输入一次公式,就能自动填充所有行,不用手动下拉,非常方便。=ARRAYFORMULA(IF(F2:F="",,MAXIFS(C:C, A:A, F2:F)))
如果你的表格结构和假设不同(比如日期列不是A列),只需要把公式里的A:A改成实际的日期列就行~
内容的提问来源于stack exchange,提问作者Владимир Владимирович




