先明确任务与结果
以源行编号、商品编号和月份定位每条输出,把同月的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补数的规则。
这是一次结构转换,不是经营诊断。空值为何出现、销售额能否在业务上成立,需要回到原始业务记录核实;本题只要求忠实保留现有材料。空值语义可配合缺失值与零的区别单独检查。
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_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 |
提示词要同时规定配对、缺失值和拒绝条件
把字段约定、四列映射与原始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唯一,且对应的源值一致。以下顺序便于人工对照原始三行。
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,missingmonth,record_count,units_known_sum,units_missing_count,sales_usd_sum
2026-09,3,6,0,130
2026-10,3,9,1,285复算金额与件数,再修复一份看似合理的错稿
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
交付时保留原表、映射与异常说明
交付包至少保留原始CSV、六行长表、四列映射和按月核对结果。这样接手人可以逐格重建结果,而不依赖一次AI对话中的叙述。
如果数据只是这三行,手工整理也很直接;如果是反复到来的月份列,可以在适合的表格软件中建立转换流程,并把本例当回归样本。本文没有验证KitNelo提供自动宽转长功能,也不把其他软件的方法冒充本站已上线按钮。
发布或交付前的核对项目
- 3个源行各生成2个月份记录,总数为6;源行编号与商品编号完整。
- P-02的9月保留0和0,不被当成空记录删掉。
- P-03的10月销量保持空白,missing数量为1。
- 9月金额130、10月金额285;每个源格的映射也逐项一致。
- 10月的9明确写为已知销量之和,完整销量仍未知;原表与映射可追溯。
常见问题
同一商品在源表有两行,应自动合并吗?
不应在结构转换阶段自行合并。只要源行编号不同,就先分别保留,再按明确业务口径另做汇总;如果源行编号本身重复,先确认是否导入重复或编号规则有误。
源表使用合并单元格的月份标题怎么办?
先整理出每一列都唯一、明确的完整表头,并人工确认月份与指标配对。不要让AI凭表格外观猜测空白表头继承哪个月份;表头修正也应保留映射依据。


