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

跨表格匹配SKU并对比Discontinued列差异的公式需求

解决两张表SKU的Discontinued状态差异检测问题

嘿,刚好我经常处理这类跨表比对的需求,给你几个实用的公式方案,完美适配你要的场景:

核心思路

我们要做的是:先匹配两张表的SKU → 确认SKU在两张表都存在 → 对比对应Discontinued列的值 → 不同则输出提示

方案1:用XLOOKUP(Excel 365/2021及以上版本推荐)

假设你的两张表分别叫Table1和Table2,其中:

  • Table1[SKU]是第一张表的SKU列,Table1[discontinued]是对应的状态列
  • Table2[SKU]是第二张表的SKU列,Table2[discontinued]是对应的状态列

在Table1的空白列(比如C列)输入公式:

=IFERROR(IF(XLOOKUP(A2, Table2[SKU], Table2[discontinued])<>B2, "Discontinued状态已变更", ""), "")
  • 解释:XLOOKUP精准匹配到Table2中对应SKU的状态值,和当前行的B2(Table1的状态)对比,不等就输出提示;IFERROR处理SKU在Table2中找不到的情况,返回空值。

如果想同时标记“SKU仅在本表存在”,可以修改成:

=IFERROR(IF(XLOOKUP(A2, Table2[SKU], Table2[discontinued])<>B2, "状态已变更", ""), "该SKU未在Table2中找到")

方案2:用INDEX+MATCH(兼容所有Excel版本)

如果你用的是旧版Excel,没有XLOOKUP功能,用这个组合公式:

=IFERROR(IF(INDEX(Table2[discontinued], MATCH(A2, Table2[SKU], 0))<>B2, "Discontinued状态已变更", ""), "")
  • 解释:MATCH找到SKU在Table2中的行号,INDEX提取对应状态值,后续逻辑和方案1一致。

避坑小提示

  • 数据类型要统一:如果你的discontinued列是混合类型(比如有的是布尔值TRUE/FALSE,有的是文本"Y"/"N"),一定要先统一类型,不然会出现“值看起来相同但公式判断不同”的问题。可以用TEXT()转换:
    =IFERROR(IF(TEXT(XLOOKUP(A2, Table2[SKU], Table2[discontinued]), "General")<>TEXT(B2, "General"), "状态已变更", ""), "")
    
  • 批量处理更高效:输入公式后直接下拉即可批量处理所有SKU;如果是Excel 365,还可以用动态数组公式一次性生成所有结果,不用手动下拉:
    =BYROW(Table1[SKU], LAMBDA(sku, 
        IFERROR(
            IF(XLOOKUP(sku, Table2[SKU], Table2[discontinued])<>XLOOKUP(sku, Table1[SKU], Table1[discontinued]), 
                "状态变更:" & sku, 
                ""
            ),
            "仅在Table1存在:" & sku
        )
    ))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:14:34