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

按RANK分组识别CountryList1存在但CountryList2缺失的国别代码

嘿,我来帮你搞定这个需求!要找出指定RANK分组里只在CountryList1出现、没在CountryList2出现的国别代码,咱们可以分两种常用场景来实现:

方法一:用Excel公式实现

如果你的数据在Excel里,用动态数组公式就能轻松搞定,步骤如下:

  • 先假设你的数据结构是这样的(和你描述的示例匹配):

    RANKCountryList1CountryList2
    1USHN
    2HNCA
  • 新增一列比如“仅在List1存在的代码”,然后输入以下公式(Excel 365/2021直接回车,老版本按Ctrl+Shift+Enter触发数组计算):

    =TEXTJOIN("|",TRUE,FILTER(TEXTSPLIT(B2,"|"),ISNA(XMATCH(TEXTSPLIT(B2,"|"),TEXTSPLIT(C2,"|")))*(A2=指定RANK值)))
    
  • 公式拆解:

    • TEXTSPLIT(B2,"|"):把竖线分隔的国别列表拆成单个代码的数组
    • XMATCH(...):检查List1的每个代码是否在List2中,找不到就返回#N/A
    • ISNA(...):把#N/A转为TRUE,找到的转为FALSE,筛选出不在List2的代码
    • *(A2=指定RANK值):只保留当前行RANK等于目标值的结果
    • TEXTJOIN("|",TRUE,...):把筛选后的代码重新用竖线拼接成字符串

    替换公式里的指定RANK值为1,就能得到HN|JP|SK|KY;替换为2则得到HN。

方法二:用Python脚本实现

如果数据量较大或者需要自动化处理,用Python脚本更高效,示例代码如下:

# 模拟你的数据表数据(实际使用时可以从CSV/Excel读取)
data = [
    {"RANK": 1, "CountryList1": "US|HN|JP|SK|KY", "CountryList2": "US|CA|MX|GB"},
    {"RANK": 2, "CountryList1": "HN|CA|AU", "CountryList2": "CA|AU|GB"}
]

def get_unique_countries(target_rank):
    for row in data:
        if row["RANK"] == target_rank:
            # 把列表转成集合,利用集合的差集特性找唯一值
            list1_set = set(row["CountryList1"].split("|"))
            list2_set = set(row["CountryList2"].split("|"))
            unique_codes = list1_set - list2_set
            return "|".join(unique_codes)
    return ""

# 测试目标RANK
print(f"RANK=1时仅在List1存在的代码:{get_unique_countries(1)}")
print(f"RANK=2时仅在List1存在的代码:{get_unique_countries(2)}")

运行后会输出:

  • RANK=1结果:HN|JP|SK|KY
  • RANK=2结果:HN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:50:47