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

Google Sheets中如何在多行列单元格区域查找特定值,以检测人员跨角色重复出勤

Google Sheets中如何在多行列单元格区域查找特定值,以检测人员跨角色重复出勤

嗨,我完全懂你现在的困境——要排查同一个人是否在同一天以不同角色出勤,但两个角色的日编号(J01、J02这类)对应的实际日期不匹配,已经做了不少前期准备,却卡在跨多行列区域查找值的环节上对吧?

先聚焦你当前的核心问题:要在journee_par_date的J1:P14多行列区域里查找role1!L2这类“hen-day”值,其实Google Sheets有现成的函数组合能搞定,而且我还能给你一个更简洁的替代思路,不用绕“hen-day”转换这一步,直接通过日期关联数据,逻辑更清晰。

方案1:用MATCH+IF快速判断多区域匹配

如果你想沿用现有的“hen-day”对来查找,可以直接用MATCH函数遍历整个目标区域,结合IF和ISNUMBER判断是否找到匹配:

=IF(ISNUMBER(MATCH(role1!L2, journee_par_date!J1:P14, 0)), "存在跨角色重复", "无重复")

这个公式会逐行扫描journee_par_date!J1:P14的所有单元格,精准匹配role1!L2的内容,找到就返回提示,否则显示无重复。

方案2:跳过“hen-day”转换,直接通过日期关联(更推荐)

既然你已经在days表里整理好了每个组、每个日标识对应的实际日期,完全可以跳过中间转换步骤,直接把两个角色的出勤数据映射成实际日期,再核对重复:

  1. 给出勤日匹配实际日期:在role1表中,针对每个A1/J01这类标识,用XLOOKUP拉取对应的实际日期:
    =XLOOKUP(C2, days!B:B, days!C:C, "无对应日期")
    
    这里C2是role1里的出勤标识,days!B:B是日标识列,days!C:C是对应的实际日期列,下拉就能批量转换所有出勤日。
  2. 统计跨角色重复记录:用COUNTIFS同时匹配姓名和日期,判断是否存在重复:
    =IF(COUNTIFS(role2!A:A, role1!A2, role2!$C:$H, role1!C2)>0, "该人员当天跨角色出勤", "")
    
    其中role2!A:A是人员姓名列,role1!A2是当前核对的人员,role2!$C:$H是role2的出勤日期列,role1!C2是当前人员的出勤日期,只要统计到匹配项,就说明存在跨角色重复。

方案3:用QUERY批量筛选所有重复记录

如果你的数据量较大,用QUERY能一次性导出所有跨角色重复的记录,效率更高:

=QUERY({role1!A2:H14, ARRAYFORMULA(XLOOKUP(role1!C2:H14, days!B:B, days!C:C)), role2!A2:H14, ARRAYFORMULA(XLOOKUP(role2!C2:H14, days!B:B, days!C:C))}, 
 "select Col1, Col9 where Col1 = Col10 and Col9 = Col19", 0)

这个公式会合并两个角色的表和对应的日期列,自动筛选出姓名相同且日期相同的记录,直接列出所有跨角色重复的情况。

你可以根据自己的表格列号和区域调整公式细节,要是还有哪里卡壳,随时说!

备注:内容来源于stack exchange,提问作者Nicolas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:43:09