用附件 source-lists.json 建立对账工作簿。RawA 和 RawB 各包含十条原创虚构设备 ID 记录。JSON 字符串是文本标识符;null 表示为空的 ID 单元格。raw-a.csv 和 raw-b.csv 是等值的 CSV 副本,但预期数据类型以 JSON 为准。 返回一个实际的 .xlsx,包含 RawA、RawB、Results 和 Exceptions,以及完整的逐行结果 CSV。保留全部源行 rowID、顺序、原始文本、前导零、重复项和空 ID 单元格。保持 RawA 和 RawB 完整不变。在单独的显示字段中,用引号显示 ID 字面值,让尾部空格可见。不要把引号存入原始 ID 单元格。 采用区分大小写的精确文本相等规则。"0012" 与 "12" 不同,"ABC" 与 "abc" 不同。"0" 是有效的文本 ID,不是空白。不要去掉首尾空格、强制转为数值、折叠大小写、模糊合并,或悄悄对标识符去重。 这是按源行判断 ID 是否存在于另一清单的对账,不是一对一分配。每条原始记录都必须对应一条 Results 结果。非空 ID 只要在另一份清单中至少存在一个完全相等的 ID,就标为 Matched;否则,A 中标为 Left-only,B 中标为 Right-only。空 ID 行保留为 Blank ID,并排除在匹配和独立键计数之外。报告每条非空源记录在本清单及另一清单中的出现次数。标记所有参与同源重复组的行,而不只是多出来的那一次。不要丢弃任何源记录,也不要把重复键展开成多对多连接。 分别展示行数和独立非空键数。合并后的独立键数是并集,匹配的独立键数是交集。解释为什么匹配的源行数不等于匹配对数。 有一条业务规则尚未确定:A008 是 "Q-7 ",尾部有一个 ASCII 空格;B007 是 "Q-7"。暂按精确字符串报告是否匹配,把两行都标记为空格复核,并询问它们是否代表同一身份。不要猜测答案。记录一项决定,不能冒充已经应用尚未实现的别名规则。 示例必须使用能重新计算的公式,包括来源链接、出现次数、分类、提示和汇总计数。写明固定范围,以及新增行时需要怎样扩展。异常视图应能通过源行 rowID 追踪,并方便筛出带提示的行。保持零、空白和重复是不同状态。 返回那份完整的、特意编写的只留首条/规范化/去重错误输出,解释每条丢失的源记录和每组错误匹配。然后返回完整修复结果。根据所提供的源记录核验实际工作簿,包括把零改为空白、把一个重复项改成新 ID,以及改变大小写,随后恢复原始数据。说明测试使用了哪个计算引擎。 未出现在另一份清单中,只能证明它不在所提供的那份快照里。不要推断停用状态、库存数量、所有权或删除权限。不要修改真实库存、发送消息或采取外部行动。即使技术修复成功,仍要提出那个空格问题。