Excel XLOOKUP 怎么用?拿订单和价目表找出缺失 SKU、重复编码与差价

用四行虚构订单练习 XLOOKUP 对账:先查重复 SKU,再标记价目表缺失与差价,附可复制公式、AI 提示词和旧版 Excel 替代方案。

周一早上,运营把 200 行订单和一份最新价目表并排打开。第 37 行的杯子在订单里卖 39 元,价目表写着 42 元;第 81 行查不到 SKU。直接问 AI“哪几行错了”,它很可能把促销价、历史价格和真正的录入错误混成一类。我们需要的不是一个看起来聪明的结论,而是一张能逐行追查的异常清单。

下面用 Excel 的 XLOOKUP 做一遍小型对账,再让 AI 帮忙解释公式、设计检查项。适合电商运营、采购、财务助理和经常对两张表的同事;只要会在 Excel 里填公式即可。示例数据均为虚构,不需要把真实客户订单上传到任何 AI 工具。

先讲清楚:对的是哪两张表

新建一个工作簿,工作表分别命名为 Products 和 Orders。Products 的 A 列是 SKU,B 列是商品名,C 列是当前标准价。A2:C4 依次填入 MUG-01 / 蓝杯 / 38、MUG-02 / 白杯 / 42、BAG-03 / 帆布袋 / 79。Orders 的 A 列是 SKU,B 列是实际成交单价,C 列是数量;A2:C5 分别填 MUG-01 / 38 / 2、MUG-02 / 39 / 1、BAG-03 / 79 / 1、MUG-99 / 35 / 1。

目标不是计算利润,也不是认定谁填错了,而是把每行订单与当前标准价比较,输出“相同、差价、价目表缺失”三种状态。MUG-02 的 3 元差额只是待核实线索:它可能是活动折扣,也可能是价目表版本不同。订单日期、优惠券、会员价和历史调价都不在这个简单模型里。若业务要审计历史成交价,应先建立含生效日期的价格版本表,不能拿今天的价目表回判去年的订单。

公式之前,先挡住两类“查到了却不可信”

第一类是重复 SKU。XLOOKUP 默认从上往下返回第一个匹配项。如果 Products 里有两行 MUG-02,价格分别为 42 和 45,公式不会替你判断哪个有效。先在 Products 的 D2 输入 =COUNTIF($A$2:$A$4,A2) 并向下填充;若某行结果大于 1,暂停对账,查明是否重复录入、不同规格共用编码,或价格表需要增加版本字段。不要为了让公式能运行,就随手删除其中一行。订单表里同一 SKU 出现多次则可能正常,因为多笔订单本就能买同一商品。

第二类是看着相同、实际不同的编码。MUG-02 与末尾带空格的 MUG-02 ,或字母 O 与数字 0,肉眼很容易忽略。把两列 SKU 设为文本格式,抽样检查前后空格、全角符号和大小写规则;必要时在副本里做清洗列并保留原值。不要让 AI 擅自把所有“相近”编码合并,那可能把两个真实商品并成一个。价格列也应确认是数值,不是带货币符号的文本。

微软的 XLOOKUP 说明明确写了:默认是精确匹配,找不到时可以用第四个参数返回自定义文本;函数取第一个匹配项。这里仍显式写 0 作为精确匹配模式,方便同事审核公式。重复值检查使用的是 COUNTIF。

给 AI 的任务:写公式,不替你解释商业原因

可用站内的 ChatGPT 或 Claude 帮你起草公式。只给字段结构和虚构的四行样本即可;没有必要上传包含客户姓名、电话、地址或内部折扣协议的原表。把下面这段问题直接复制,再按实际列名修改:

我在 Excel 中有两个工作表。Products:A 列 SKU,B 列商品名,C 列当前标准价,数据在第 2–4 行;Orders:A 列 SKU,B 列实际成交单价,C 列数量,数据在第 2–5 行。请先提醒我检查 Products 的 SKU 是否重复,再给出 Orders 的 D 列查价公式、E 列状态公式、F 列差额公式。必须精确匹配;查无 SKU 时返回文字 NOT_FOUND,不要把它变成 0 元;差额按两位小数计算。请逐列解释公式,并列出四行预期结果。不要写宏、脚本或删除原数据,不要推断差价就是错误。若公式依赖 Excel 版本或参数分隔符,请说明。

这个提示词限定了输入、输出和禁止动作。AI 若回了一个含糊的“用 VLOOKUP 匹配价格”,继续追问具体单元格引用;若它把整张真实订单表重新要求一遍,则改用脱敏样本。模型适合生成候选公式,实际对账结论仍由人核实。

三列公式,四行结果,先跑小样本

确认 Products 的 SKU 无重复后,在 Orders 的 D2 输入下面公式,再填充到 D5:

=XLOOKUP(A2,Products!$A$2:$A$4,Products!$C$2:$C$4,"NOT_FOUND",0)

A2 是当前订单 SKU;两个带美元符号的范围在向下填充时保持不变。第四个参数把查无 SKU 显示为 NOT_FOUND,而不是 0 元;第五个参数 0 表示精确匹配。不要把整列 A:A、C:C 作为默认方案复制到大工作簿,先用实际数据范围,扩容时再改成 Excel 表格或维护好范围。

在 E2 标记状态,在 F2 计算“订单成交单价减当前标准价”;两列都向下填充:

=IF(D2="NOT_FOUND","价目表缺失",IF(ROUND(B2-D2,2)=0,"一致","待核差价"))
=IF(ISNUMBER(D2),ROUND(B2-D2,2),"")

预期是:MUG-01 查到 38,状态“一致”,差额 0;MUG-02 查到 42,状态“待核差价”,差额 -3;BAG-03 查到 79,状态“一致”,差额 0;MUG-99 的 D 列为 NOT_FOUND,状态“价目表缺失”,F 列留空。负号只表示成交价低于当前标准价,不表示亏损。若其中一行结果不同,先核对 SKU 和数据类型,不要急着改公式以迎合预期。

这里用 ROUND(...,2) 避免小数计算的显示差异影响比较,但不应替代币种、税费和折扣规则的业务核查。你的 Excel 如果使用分号作为函数参数分隔符,需要把公式中的参数逗号改为分号;微软的公式故障排查说明也提醒分隔符取决于地区设置。先在单个单元格测试,再整列填充。

把“异常”分成两条队列,而不是一键修表

筛选 E 列的“价目表缺失”:核对商品是否下架、SKU 是否录错、价目表是否漏了新商品。不要把 NOT_FOUND 自动替换为 0;那会让不存在的价格参与后续金额计算。筛选“待核差价”:拉上订单日期、活动编号和审批记录,看它是合法促销、会员价、人工改价,还是确实需要更正。把处理结果另加一列“原因/证据链接”,不要覆盖原始成交单价。

对于实际工作簿,建议再加两道门槛。其一,Products 的编码计数必须全部为 1;若不为 1,停止批量回填。其二,统计状态行数,确认“一致 + 待核差价 + 价目表缺失”与订单总行数相等;抽看首尾行和几条异常行,防止填充范围漏行。成交单价若为空或是文本,另建“数据格式错误”状态,别让它混入价格差异。数量 C 列只用于后续估算影响金额:若要算差额总额,再用单价差额乘数量,并明确退款、赠品和税费是否排除。

当表格变大、要定期处理多份价目表时,考虑用 Excel 表格或 Power Query 建立可刷新流程,而不是每周手工拖公式。AI 可以帮助写字段字典、测试样本和交接说明;它不该在未审计的情况下直接改写主数据。最终交付给同事的应是一份含来源文件日期、价目表版本、公式列、异常队列和审核人的副本。

如果 XLOOKUP 不可用,别假装公式坏了

微软说明 Excel 2016 和 2019 不提供 XLOOKUP。遇到 #NAME?,先核对版本,而不是让 AI 反复“修复语法”。在旧版 Excel 中,可用精确匹配的 VLOOKUP 作替代;仍须先排除重复 SKU:

=IFERROR(VLOOKUP(A2,Products!$A$2:$C$4,3,FALSE),"NOT_FOUND")

这条公式依赖 SKU 在查找范围的第一列,且 FALSE 表示精确匹配。若未来表结构会变,最好先设计稳定的字段位置或改用更适合的连接方式,不要只靠 AI 把列序号从 3 改成 4。此外,IFERROR 会把其他公式错误也显示成 NOT_FOUND;若结果异常,先单独运行 VLOOKUP 检查错误原因。旧版替代式也只解决“取到哪个值”,解决不了价格生效日期和授权折扣的问题。

做完后保存一张四行测试表和异常处理记录。下次同事问“为什么这单被标红”,你能指向原始 SKU、对应价目表行、差额和活动凭证;这比一句“AI 检查过了”更有用。

本文由 AI Islands 根据产品官网及公开资料独立整理。工具功能和价格可能变化,请以官网最新信息为准。