AI 入门与核查AI 应用

AI把月份宽表转成长表:先配对销量与销售额,再核对6条记录

可以让AI把“月份写在列名里”的宽表整理成长表,但必须先规定每个月的销量与销售额如何配对。本例3个商品、2个月应得到6条记录;10月已知销量合计为9,另有1个缺失值,不能直接宣布10月总销量为9。下面的CSV、错误稿与参考答案均为本站虚构教学材料,不是某款模型的实测输出。

打开的计划本展示月份日历,旁边放着方格笔记本
配图:Anna Evans · Unsplash License月份布局资料配图;正文表格与数字均为原创教学材料。

先明确任务与结果

以源行编号、商品编号和月份定位每条输出,把同月的units与sales_usd放在一起;保留明示的0,把空销量留空并标记missing。验收要同时检查6条记录、逐格来源和按月汇总,而不是只看总金额。

先确定一条输出记录代表什么

本例一条长表记录代表“一个源行中的一个商品,在一个月份的两项指标”。source_row_id与product_id都保留,month只允许2026-09和2026-10;units表示件数,sales_usd表示美元销售额。金额是题目给定值,不需要汇率或税费计算。

Microsoft的Unpivot文档说明了把列转换为属性和值的基本方法。这里还多了一步:将同月的两种指标配回同一条记录。只得到Attribute/Value两列,并不等于已经完成下面要求的六行、双指标交付。

先把这个数据含义写清楚,再让AI做变形。若任务实际是比较不同币种,应先按混合币种分开汇总的方法确定分组,不能因为金额都长得像数字就放进同一个合计。

本例的输出字段约定
字段含义与约束
source_row_id / product_id照抄源值;不丢编号、不自行合并同名商品
month从允许的月份列映射得到,不改成当天日期
units / sales_usd同一源行、同一个月的两项值;两者单位不同
units_status源销量明示时为observed;源销量空白时为missing

三行源表,包含一个明示零和一个空格

复制以下完整CSV作为输入。P-02在9月的销量和销售额都明确为0;P-03在10月有75美元销售额,但销量未填。题目没有规定单价固定,也没有授予AI补数的规则。

这是一次结构转换,不是经营诊断。空值为何出现、销售额能否在业务上成立,需要回到原始业务记录核实;本题只要求忠实保留现有材料。空值语义可配合缺失值与零的区别单独检查。

原始CSV:保持P-03的10月销量单元格为空

source_row_id,product_id,2026-09_units,2026-09_sales_usd,2026-10_units,2026-10_sales_usd
r1,P-01,4,80,6,120
r2,P-02,0,0,3,90
r3,P-03,2,50,,75
完整的自编源材料;没有隐藏文件或额外默认值。

先列出四个表头的映射,再执行转换

不要按列位置把前两个数字与后两个数字随意拼接。先确认完整表头的映射:月份决定一条记录所属时间,指标名决定值应放入哪个字段。sales_usd含有下划线,不能只拆到第一个下划线就把指标识别完。

下表是本例的白名单。若后来增加了2026-11列或reviewer_note,应先决定它属于新月份、文本备注还是无关字段,再修订映射;不能默默把所有新列都当销售指标。

允许转换的四个源列
源表头目标月份目标字段
2026-09_units2026-09units
2026-09_sales_usd2026-09sales_usd
2026-10_units2026-10units
2026-10_sales_usd2026-10sales_usd

提示词要同时规定配对、缺失值和拒绝条件

把字段约定、四列映射与原始CSV一起提供给AI。要求它先解释转换规则,再给CSV,最后给按月核对表;这样可以分开检查“读懂了表头”与“抄对了数值”。

如模型支持文件输入,也要核对它实际读到的工作表与表头。本文不假定任何产品具有相同上传能力;这份短案例可以直接粘贴到支持文本输入的AI对话中。

可复用的转换任务提示词

请处理下方虚构商品CSV,完成结构转换,不补充业务事实。
一条输出=一个源行、一个商品、一个月份;保留source_row_id和product_id。
仅映射这四列:2026-09_units→2026-09/units;2026-09_sales_usd→2026-09/sales_usd;2026-10_units→2026-10/units;2026-10_sales_usd→2026-10/sales_usd。
输出列依次为source_row_id,product_id,month,units,sales_usd,units_status。
明示的0保留为0;空销量留空并标记missing,其余销量标记observed。不要按过去单价、相邻记录或销售额推算缺失销量。
若表头不匹配、源行编号重复或出现未约定月份,列出问题并停止,不默默修复。
输出完整六行CSV,并按月列出记录数、已知销量之和、销量缺失条数、销售额合计。已知销量之和不能冒充完整总销量。
最后说明每个汇总值如何从源记录复算。

原始CSV:
source_row_id,product_id,2026-09_units,2026-09_sales_usd,2026-10_units,2026-10_sales_usd
r1,P-01,4,80,6,120
r2,P-02,0,0,3,90
r3,P-03,2,50,,75
自编提示词;参考结果在下一节,不以提示词本身代替答案。

参考答案:六条记录保持两项指标的对应

先逐行核对,再核对合计。P-02的9月记录必须存在,即使两项指标都是0;P-03的10月记录也必须存在,销量为空、销售额为75、状态为missing。

记录的排列顺序可以不同,只要每组source_row_id、product_id、month唯一,且对应的源值一致。以下顺序便于人工对照原始三行。

完整参考长表CSV

source_row_id,product_id,month,units,sales_usd,units_status
r1,P-01,2026-09,4,80,observed
r1,P-01,2026-10,6,120,observed
r2,P-02,2026-09,0,0,observed
r2,P-02,2026-10,3,90,observed
r3,P-03,2026-09,2,50,observed
r3,P-03,2026-10,,75,missing
编辑计算的答案,不是任何AI产品的运行截图或实际回复。

参考按月核对CSV

month,record_count,units_known_sum,units_missing_count,sales_usd_sum
2026-09,3,6,0,130
2026-10,3,9,1,285
units_known_sum表示已知值之和;missing_count非0时,完整销量仍未知。

复算金额与件数,再修复一份看似合理的错稿

9月销量为4+0+2=6,销售额为80+0+50=130。10月已知销量为6+3=9,另有1条销量缺失;销售额为120+90+75=285。两个月的销售额合计为415,但跨月销量的完整总量仍不能确定。

故意把某个商品的两个销售额互换,可能仍保持全表金额415不变。因此“总金额对了”只是必要检查之一;每个源行、月份和指标都必须能追到同一个源单元格。

下面的3来自75÷(50÷2),暗中假定P-03在两个月单价不变。题目从未给出这个前提,所以即便计算本身正确,它也不是合法的源数据。

有销售额,不等于可以反推销量

故意设计的错误行

r3,P-03,2026-10,3,75,observed

应保留的参考行

r3,P-03,2026-10,,75,missing

删除推算的3,恢复空值并标记missing;如果业务确需补数,应另存人工确认的依据,不覆盖原始空格。

交付时保留原表、映射与异常说明

交付包至少保留原始CSV、六行长表、四列映射和按月核对结果。这样接手人可以逐格重建结果,而不依赖一次AI对话中的叙述。

如果数据只是这三行,手工整理也很直接;如果是反复到来的月份列,可以在适合的表格软件中建立转换流程,并把本例当回归样本。本文没有验证KitNelo提供自动宽转长功能,也不把其他软件的方法冒充本站已上线按钮。

发布或交付前的核对项目

  • 3个源行各生成2个月份记录,总数为6;源行编号与商品编号完整。
  • P-02的9月保留0和0,不被当成空记录删掉。
  • P-03的10月销量保持空白,missing数量为1。
  • 9月金额130、10月金额285;每个源格的映射也逐项一致。
  • 10月的9明确写为已知销量之和,完整销量仍未知;原表与映射可追溯。

常见问题

同一商品在源表有两行,应自动合并吗?

不应在结构转换阶段自行合并。只要源行编号不同,就先分别保留,再按明确业务口径另做汇总;如果源行编号本身重复,先确认是否导入重复或编号规则有误。

源表使用合并单元格的月份标题怎么办?

先整理出每一列都唯一、明确的完整表头,并人工确认月份与指标配对。不要让AI凭表格外观猜测空白表头继承哪个月份;表头修正也应保留映射依据。

参考资料与延伸阅读

继续阅读