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

如何提取CSV列中最后一条记录的日期至新列?

嘿,这个需求我之前帮人处理过类似的,给你几个实用的方案,看你平时习惯用哪种工具:

方法1:Python + Pandas(适合处理大文件,11000行毫无压力)

如果你会点Python,这个方法最快最灵活,尤其适合后续还要做其他数据处理的情况。步骤很简单:

  1. 先安装pandas(如果没装的话,运行pip install pandas)
  2. 用下面的代码处理:
import pandas as pd

# 替换成你的CSV文件路径
df = pd.read_csv("your_data.csv")

# 定义一个函数,专门提取每行最后一条记录的日期
def extract_last_date(record_text):
    # 把整条内容按"► "分割,得到所有单独的记录,同时过滤掉空字符串
    all_records = [r.strip() for r in record_text.split("► ") if r.strip()]
    if not all_records:  # 万一某行没有记录,返回空值
        return None
    # 取最后一条记录,按" | "拆分,日期是第二个元素
    last_record = all_records[-1]
    record_parts = last_record.split(" | ")
    return record_parts[1] if len(record_parts) >= 2 else None

# 把函数应用到目标列,生成新列
# 把"target_column"替换成你那个包含多条记录的列的名称
df["Last_Record_Date"] = df["target_column"].apply(extract_last_date)

# 保存处理后的文件
df.to_csv("processed_data.csv", index=False)

替换好文件名和列名,运行代码就行,几秒就能搞定11000行。

方法2:Excel公式(适合不想写代码的朋友)

如果平时用Excel多,用公式就能解决。假设你的目标列是A列,在B1单元格输入下面的公式(Excel 365及以上版本推荐用这个,更清晰):

=LET(
    last_record, TRIM(MID(SUBSTITUTE(A1,"► ",REPT(" ",LEN(A1))),LEN(A1)*(LEN(A1)-LEN(SUBSTITUTE(A1,"► ","")))/LEN("► "),LEN(A1))),
    date_segment, MID(last_record,FIND(" | ",last_record)+3,FIND(" | |",last_record)-FIND(" | ",last_record)-3),
    TRIM(date_segment)
)

输入完按回车,然后下拉填充到所有行就搞定了。

要是你用的是旧版Excel(没有LET函数),可以拆分两步:

  1. 先在B1提取最后一条记录:=TRIM(MID(SUBSTITUTE(A1,"► ",REPT(" ",LEN(A1))),LEN(A1)*(LEN(A1)-LEN(SUBSTITUTE(A1,"► ","")))/LEN("► "),LEN(A1)))
  2. 再在C1提取日期:=TRIM(MID(B1,FIND(" | ",B1)+3,FIND(" | |",B1)-FIND(" | ",B1)-3))
    同样下拉填充就行。

方法3:Power Query(Excel/Power BI专属,适合做数据清洗流程)

如果经常处理这类数据清洗任务,Power Query是个好工具,步骤如下:

  1. 打开Excel,选中你的数据表格,点击「数据」选项卡 -> 「从表格/范围」(会自动打开Power Query编辑器)
  2. 选中目标列,点击「添加列」-> 「自定义列」
  3. 在弹出的窗口里输入M语言公式(把[Target Column]换成你的列名):
let
    split_records = Text.Split([Target Column], "► "),
    clean_records = List.RemoveItems(split_records, {""}),
    last_record = List.Last(clean_records),
    split_parts = Text.Split(last_record, " | "),
    final_date = split_parts{1}
in
    final_date
  1. 点击确定,然后关闭Power Query并上载数据到Excel,新列就生成好了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:08:15