You need to enable JavaScript to run this app. Google Sheets如何筛选同时有审核通过与驳回记录的提交者
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets如何筛选同时有审核通过与驳回记录的提交者

方案1:Excel/WPS 表格公式方案(适配1万行规模无性能压力)

假设你的表格列对应字段如下:

  • A列:提交者姓名
  • B列:处理日期
  • C列:审核结果(approve/reject)
  • 第1行为表头,第2行起为数据行

步骤1:新增辅助列标记符合要求的用户

根据你的软件版本选择对应公式,输入到D2单元格后下拉填充整列即可:

适用Excel 365/2021及以上、WPS最新版

=IF(COUNT(UNIQUE(FILTER(C:C,A:A=A2)))=2,"符合","不符合")

公式逻辑:提取当前用户的所有审核结果去重,去重后数量为2即代表同时存在驳回和通过记录。

适用所有旧版本Excel、WPS

=IF(AND(COUNTIFS(A:A,A2,C:C,"approve")>0,COUNTIFS(A:A,A2,C:C,"reject")>0),"符合","不符合")

公式逻辑:分别统计当前用户的通过记录数、驳回记录数,两个数值都大于0即符合筛选要求,该公式计算效率足以支撑10万行以内的数据集。

步骤2:提取目标用户

对D列筛选值为「符合」的行,再选中A列执行「数据→删除重复值」操作,即可得到所有满足要求的唯一用户列表。


方案2:Python pandas 处理方案(适配超10万行大规模数据集)

如果后续数据量持续增长,用pandas处理效率更高,参考代码如下:

import pandas as pd

# 读取数据集,替换为你的实际文件路径
df = pd.read_excel("提交结果数据集.xlsx")

# 筛选同时存在两类审核结果的用户
user_group = df.groupby("提交者姓名")["审核结果"].nunique().reset_index()
target_users = user_group[user_group["审核结果"] == 2]["提交者姓名"].tolist()

# 输出最终目标用户列表
print(target_users)

可选校验逻辑

如果需要排除「先通过后被驳回」的异常数据,确认驳回记录确实在通过记录之前,可新增以下判断逻辑:

# 确保数据已按要求排序
df_sorted = df.sort_values(by=["提交者姓名", "处理日期"])

def check_user_history(group):
    # 取用户第一条通过记录的位置
    first_approve_idx = group[group["审核结果"] == "approve"].index.min()
    if pd.isna(first_approve_idx):
        return False
    # 判断通过记录之前是否存在驳回记录
    return (group.loc[:first_approve_idx, "审核结果"] == "reject").any()

# 得到最终符合要求的用户列表
valid_users = df_sorted.groupby("提交者姓名").filter(check_user_history)["提交者姓名"].unique().tolist()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 16:15:01