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

如何创建列返回同一ID最后一次出现的Status值?

实现方案

1. Excel 公式实现

在Result列的第一个单元格(例如D2)输入以下公式,下拉填充即可:

=LOOKUP(2,1/(A:A=A2),C:C)

原理:1/(A:A=A2)生成匹配当前ID为1、其余为错误值的数组,LOOKUP(2, ...)会忽略错误值,定位到最后一个匹配项对应的Status值。

如果使用Excel 365及以上版本,推荐更直观的XLOOKUP函数:

=XLOOKUP(A2,A:A,C:C,,0,-1)

参数-1表示从后往前查找,直接返回当前ID最后一条记录的Status。

2. Python Pandas 实现

假设数据存储在DataFrame df中,两行代码即可完成:

# 按ID分组后,将每组最后一条的Status赋值给该组所有行
df['Result'] = df.groupby('ID')['Status'].transform(lambda x: x.iloc[-1])

3. SQL 实现

利用窗口函数标记每个ID的记录顺序,再关联获取最后一条的Status:

WITH ranked_data AS (
    SELECT 
        ID, Count, value, Status,
        ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Count DESC) AS rn
    FROM your_table
)
SELECT 
    t.ID, t.Count, t.value, t.Status, r.Status AS Result
FROM your_table t
JOIN ranked_data r ON t.ID = r.ID AND r.rn = 1;

需求回顾

输入图片描述

  • 单个ID对应Count列标注的多条记录,每条记录有独立的value和Status。
  • 目标:新增Result列,同一ID下的所有记录均显示该ID最后一条记录的Status值。

示例:ID“456”共有4条记录,最后一条(第9行,Count=4)的Status为“not ok”,因此该ID下第4、7、8、9行的Result列均显示“not ok”。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:55:29