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

如何通过SQL提取Column A中""""间的内容至Column B?

需求说明

我需要从A列的结构化数据中提取所有位于""之间的内容(例如Activity、DatasetId、RecordType等),并将这些内容合并后放入B列中。

示例数据

A列
{""Activity"":""ConnectFromExternalApplication"",""Id"":""xz[we-654231-aja"",""RecordType"":20,""CreationTime"":""2024-02-13T17:59:44"",""Operation"":""ConnectExternal"",""OrganizationId"":""[REDACTED]"",""UserType"":0,""UserKey"":""bb0-649-429-a53f-b6328"",""Workload"":""BI"",""ResultStatus":null,""UserId"":""bb0-16-4219-a53f-665328"",""ClientIP":null,""CustomData":""""}
{""Id"":""f120-00c3-4ddb-ba60-c9ed83df0"",""RecordType"":20,""CreationTime"":""2023-03-13T17:46:14"",""Operation"":""ViewReport"",""OrganizationId"":""[REDACTED]"",""UserType"":0,""UserKey"":""100300009C22A108"",""Workload"":""PowerBI"",""UserId"":""Ben.@x.uk"",""ClientIP"":""213.174.203.7"",""Activity"":""ViewReport"",""ItemName"":""Opt Dashboard"",""WorkSpaceName"":""UK Operational Reports"",""DatasetName"":""Operational Dashboard"",""ReportName"":""Operational Dashboard"",""CapacityId"":""82EF1AA9-0554-4E95-B249-15F"",""CapacityName"":""BI UK Capacity 1"",""WorkspaceId"":""6588ee54-5b73-441d-a3ac-f133f"",""AppName"":""UK Operational Reports"",""ObjectId"":""Operational Dashboard"",""DatasetId"":""1cd1ce2f-9395-4be0-9521-3e38e7e236b8"",""ReportId"":""76d769fd-a9ec-4c77-ac3d-7cd57d9449ca"",""ArtifactId"":""76d769fd-a9ec-4c77-ac3d-7cd57d9449ca"",""ArtifactName"":""Opt Dashboard"",""IsSuccess":true,""ReportType"":""PowerBIReport"",""RequestId"":""a2214fde-dffc-7c30-083c-6702b7"",""ActivityId"":""f61bed2a-5906-425c-8048-682a779900aa"",""AppReportId"":""e0ab7628-73b5-4832-9161-c966996d293e"",""DistributionMethod"":""Apps"",""ConsumptionMethod"":""Power BI Web"",""AppId"":""e44d1e27-1d9d-4585-a477-fb66fcd"",""ArtifactKind"":""Report""}

提取后B列示例

B列
Activity, ConnectFromExternalApplication, Id, RecordType, CreationTime, Operation, ..., CustomData
Id, ..., ArtifactKind

实现方法

方法1:Excel公式批量处理

直接在B1单元格输入以下公式,下拉填充即可:

=TEXTJOIN(", ", TRUE, FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"""""", """")&""",""", """,""""), """:"", """,""""), ""","""", "</s><s>")&"</s></t>", "//s"))

公式逻辑:先将A列的转义双引号("")替换为普通双引号,再拆分键值对结构,提取所有引号内的内容,最后用「逗号+空格」连接成字符串。

方法2:Python脚本高效处理

如果数据量较大,用Python处理更快捷:

import pandas as pd
import re

# 读取Excel数据(替换为你的文件路径)
df = pd.read_excel("data.xlsx", sheet_name="Sheet1")

# 定义提取逻辑
def get_quoted_content(text):
    # 匹配所有""包裹的内容
    content_list = re.findall(r'""(.*?)""', text)
    # 过滤空值(比如CustomData对应的空内容)
    valid_content = [item for item in content_list if item.strip()]
    # 合并成目标格式
    return ", ".join(valid_content)

# 生成B列数据
df["B列"] = df["A列"].apply(get_quoted_content)

# 保存结果到新Excel
df.to_excel("processed_data.xlsx", index=False)

内容的提问来源于stack exchange,提问作者Nathanael Tom Aterado

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:10:57