按日识别Excel日期时间列中的最小与最大时间戳
按日提取日期时间列的最小/最大时间戳解决办法
嘿,这个需求我之前也碰到过,刚好有两种靠谱的解决办法,看你习惯用代码还是Excel啦~
方法一:Python Pandas(灵活适配大量数据)
如果你的数据量比较大,或者需要自动化处理,用Pandas是最优解:
先把字符串格式的时间转成可处理的datetime类型
原始数据是字符串,得先让Pandas识别成日期时间对象:import pandas as pd # 假设你的数据存在DataFrame中,列名为'timestamp' df = pd.DataFrame({ 'timestamp': ['April 04, 2018 07:45', 'April 04, 2018 12:51', 'April 05, 2018 11:36', ...] }) df['timestamp'] = pd.to_datetime(df['timestamp'])按日期分组计算最小/最大时间
提取日期作为分组键,然后聚合计算每天的最早和最晚时间:# 新增日期列(仅年月日,不带时间) df['date'] = df['timestamp'].dt.date # 分组聚合 daily_stats = df.groupby('date')['timestamp'].agg(['min', 'max'])(可选)转回原格式的字符串
如果需要把结果转成和原始数据一样的格式:daily_stats = daily_stats.applymap(lambda x: x.strftime('%B %d, %Y %H:%M'))这样得到的结果就是每天对应的最早和最晚时间戳啦。
方法二:Excel(适合无代码场景)
要是你更习惯用Excel处理数据,步骤也很简单:
确保时间列是Excel可识别的日期格式
选中你的日期时间列,右键→「设置单元格格式」,选择合适的日期时间格式(比如「*3/14/2012 1:30 PM」),确保Excel能正确解析时间。提取纯日期列
在相邻列(比如B列)输入公式=INT(A2),然后下拉填充所有行。这个公式会把日期时间的整数部分(即年月日)提取出来,作为分组依据。用数据透视表计算最小/最大值
- 选中所有数据(包括原始时间列和新的日期列),点击「插入」→「数据透视表」;
- 把日期列拖到「行」区域,把原始时间列拖到「值」区域两次;
- 第一次值字段设置为「最小值」,第二次设置为「最大值」;
- 最后调整值区域的单元格格式为你需要的日期时间样式,就能得到每天的最早和最晚时间了。
小提示
就算你的数据里同一天的时间顺序混乱(比如你示例里April 06的11:30和11:29),不管是Pandas还是Excel的min/max函数都会自动识别正确的时间大小,完全不用担心排序问题~
内容的提问来源于stack exchange,提问作者John




