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

如何用电子表格函数筛选检查人员各地点最近到访记录?

解决人员-地点最近到访记录提取及筛选问题

先纠正你之前的公式错误

  • MINIFS函数问题:你只指定了地点作为筛选条件,但要获取「每人每个地点」的最近到访,需要同时匹配人员姓名和地点名称两个条件。MINIFS的正确语法是MINIFS(要取最小值的区域, 条件区域1, 条件1, 条件区域2, 条件2...),你之前的写法要么缺关键条件,要么条件逻辑错误,导致结果为0或不符合预期。
  • AGGREGATE函数问题:你之前的公式没有加入人员条件,且布尔值相乘的写法会把不匹配的行转为0,导致取到的最小值是0;最后那个AGGREGATE公式参数顺序完全错误,函数编号5对应MIN,忽略选项4,第三个参数应为要计算的数值区域,你把条件放错了位置。

正确实现方法

假设你的表格结构为:

  • went to表:A列=地点名称,B列=人员姓名,G列=到访距今月份(数值越小表示到访时间越近)

方法1:用MINIFS提取每人-地点的最近到访

在新表格的目标单元格(比如C2)输入以下公式,匹配当前行的人员和地点,取对应G列的最小值:

=MINIFS(went_to!$G$2:$G$100, went_to!$A$2:$A$100, $A2, went_to!$B$2:$B$100, $B2)

下拉填充即可批量生成所有记录。

方法2:用AGGREGATE函数(兼容旧版Excel)

如果你的Excel版本不支持MINIFS(比如2016及以前),可以用AGGREGATE实现,同时加入双重条件:

=AGGREGATE(15, 6, went_to!$G$2:$G$100/((went_to!$A$2:$A$100=$A2)*(went_to!$B$2:$B$100=$B2)), 1)
  • 函数编号15对应SMALL(取第k小值),忽略选项6表示忽略错误值;
  • 用/((条件1)*(条件2))的方式,不满足条件的行会生成#DIV/0!错误,被AGGREGATE忽略,最后取第1小的值(即最小值)。

方法3:用数据透视表(高效省心)

如果数据量较大,用透视表更便捷:

  1. 选中went to表的全部数据区域,插入数据透视表;
  2. 行字段依次拖入「人员姓名」和「地点名称」;
  3. 值字段拖入「到访距今月份」,修改值汇总方式为「最小值」;
  4. 生成的透视表直接就是每人每个地点的最近到访记录。

筛选近4个月未到访的地点

得到最近到访月份后,筛选出「距今月份>4」的记录即可:

  • 公式生成的表格:添加筛选功能,在到访月份列筛选数值大于4的条目;
  • 透视表:直接在「最小值:到访距今月份」字段中筛选大于4的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:26:27