You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel技术需求:统计连续超3天吃苹果的人员次数及日期区间

Excel多人员连续食用水果统计方案

需求说明

  1. 统计每位人员连续食用某水果超过3天的次数(如Blake在1月5日-9日的连续记录计1次,Mary次数为0),方案需适配多人员、多日期、多水果场景;
  2. 额外输出每位人员符合条件的连续食用日期区间;
  3. 修正此前公式标记错误问题:连续天数超4天时,仅在周期最后一天标记计数,避免中间日期误标记导致计数偏差。

前置准备

确保原始数据按姓名→水果→日期升序排序,数据结构示例:

姓名日期水果
Blake2024/1/5苹果
Blake2024/1/6苹果
Blake2024/1/7苹果
Blake2024/1/8苹果
Blake2024/1/9苹果
Mary2024/1/5苹果

方法一:公式法(适合快速处理)

步骤1:计算连续天数

新增辅助列连续天数(列D),输入公式并下拉:

=IF(AND(A2=A1,C2=C1,B2=B1+1),D1+1,1)
  • 逻辑:同一人、同一种水果,且日期连续时,天数累加;否则重置为1。

步骤2:标记有效周期结束日

新增辅助列周期结束标记(列E),输入公式并下拉:

=IF(AND(D2>3,OR(A3<>A2,C3<>C2,B3<>B2+1)),1,0)
  • 逻辑:仅当连续天数>3,且下一行不属于同一人/同一种水果/日期不连续时,标记为1(即该行为有效周期的最后一天)。

步骤3:统计次数

在汇总表中,使用COUNTIFS统计指定人员+水果的有效次数:

=COUNTIFS(原始数据!A:A,"Blake",原始数据!C:C,"苹果",原始数据!E:E,1)

步骤4:提取日期区间

使用TEXTJOIN结合数组公式(需按Ctrl+Shift+Enter确认)提取区间:

=TEXTJOIN("、",TRUE,IF((原始数据!A:A="Blake")*(原始数据!C:C="苹果")*(原始数据!E:E=1),TEXT(原始数据!B2-原始数据!D2+1,"yyyy/mm/dd")&" - "&TEXT(原始数据!B2,"yyyy/mm/dd"),""))
  • 逻辑:找到所有标记为1的行,通过连续天数反推周期起始日期,合并成起始-结束格式的区间。

方法二:Power Query法(适合大规模/多维度数据)

步骤1:导入数据到Power Query

选中数据区域 → 「数据」选项卡 → 「从表格/区域」导入Power Query编辑器。

步骤2:分组并处理连续日期

  1. 按姓名、水果分组,操作:「转换」→ 「分组依据」,分组列选姓名和水果,新列名设为日期列表,操作选「所有行」。
  2. 展开分组后的日期列表,添加索引列:「添加列」→ 「索引列」→ 「从0开始」。
  3. 计算连续日期组:添加自定义列,公式:
[日期] - [索引]
  • 逻辑:连续日期与索引的差值固定,相同差值即为同一连续周期。

步骤3:筛选有效周期并提取区间

  1. 按姓名、水果、自定义列分组,统计每组的最小日期、最大日期、天数(天数=最大日期-最小日期+1)。
  2. 筛选出天数>3的行,添加自定义列合并日期区间:
Text.From([最小日期]) & " - " & Text.From([最大日期])

步骤4:导出结果

关闭Power Query并加载数据到Excel,即可得到每个人员-水果组合的有效次数和对应日期区间。


关键修正说明

此前的错误源于未判断「下一行是否属于同一连续周期」,通过OR(A3<>A2,C3<>C2,B3<>B2+1)条件,确保仅在连续周期的最后一天标记计数,彻底解决连续天数超4天时中间日期误标记的问题,同时适配多人员、多水果的复杂场景。

内容的提问来源于stack exchange,提问作者Devin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:28:19