先明确任务与结果
按本例明确规则,前3条都是1234.50千克,第4条是−20.00千克,四条确认记录的小计为3683.50千克。N05的1,234保留1234与1.234两个候选,N06保留缺失。不要把这两条当零,也不要把确认小计写成六条记录的完整总量。
同一个逗号,在两份报表里可以负责不同事情
先问导出方字段怎样表达数值,再讨论换成什么格式。来源P1用点作小数符、逗号分组;P2反过来。若把P2的1.234,50直接删掉逗号,就会得到1.23450,数值为1.2345,而不是1234.50。它仍像一个合法数字,错误不会自动显示成报错。
本例是编辑设计的虚构重量调整报表,所有记录单位均为kg。P1–P4是给定的来源合同,不是按文件语言、同事所在地或国家名称推测出的通用规定。负调整量表示本教学合同中的扣减,不是对真实库存是否可信的审计结论。
Microsoft的NUMBERVALUE说明允许显式指定小数符和分组符;省略参数时使用当前区域设置。函数能按指定规则转换,不负责证明你指定的规则就是原作者的含义。
| 规则 | 小数符 | 分组符 | 额外约定 |
|---|---|---|---|
| P1 | 点 . | 逗号 , | 允许合法三位分组 |
| P2 | 逗号 , | 点 . | 分组不能当作小数 |
| P3 | 逗号 , | U+202F窄空格 | 保留原字符以便核对 |
| P4 | 点 . | 逗号 , | 包围整个数值的括号表示负调整 |
保留原始字符串、规则ID与单位
下面是完整原材料,没有真实企业或客户数据,也不是某个AI模型的运行输出。N03在1和234之间有一个实际U+202F字符;复制时不要先把所有空白删除。N05故意没有来源规则,N06是真正空字段。
CSV里的双引号用来包住含逗号的字段,不是数值的一部分,也不能保证表格软件按文本保留它。Microsoft的Text/CSV导入说明支持关闭自动类型检测。导入时将raw_value指定为文本,保留完整原字符串后再按来源规则转换;若已经被自动转换,重新导入保留的源CSV,仅改显示格式不能还原原值。若列已经错位,按CSV字段边界与列类型指南修复结构,别在错列数据上继续猜小数点。
row_id,raw_value,rule_id,unit
N01,"1,234.50",P1,kg
N02,"1.234,50",P2,kg
N03,"1 234,50",P3,kg
N04,(20.00),P4,kg
N05,"1,234",UNKNOWN,kg
N06,,P1,kg
让AI输出核对台账,而不是覆盖源列
要求AI为每条记录解释采用了哪个来源规则,保留raw_value,并把无法确定的行留在结果中。这样,即使规范化值看起来整齐,接收人仍能回到原字符串复查。
下面请求应接在完整CSV之后使用。它只组织和解释这个练习;没有执行Excel或某个模型的证据,参考答案也不能当作模型成功率。
请按上方完整CSV和以下合同整理数值,保留全部6条、row_id、raw_value和unit,不覆盖原列。
P1:点为小数符,逗号为三位分组符。
P2:逗号为小数符,点为三位分组符。
P3:逗号为小数符,U+202F为三位分组符。
P4:使用P1分隔规则,包围整个数值的括号表示负调整。
UNKNOWN:来源规则没有提供,不得从外观、语言或常见习惯选择。
输出normalized_value与parse_status(confirmed/ambiguous/missing),另列依据和未决候选。N05保留1234与1.234两个候选,不将其任选为确认值;N06为空,不转成0。识别N03的U+202F。
只汇总confirmed行,明确写“确认小计”,解释为什么六条完整总量未知。不要换算单位,不要统一删除标点,不把计算结果描述成真实库存审计或模型亲测。完整参考答案:4条确认、1条歧义、1条缺失
N01按P1去掉分组逗号,N02按P2去掉分组点并把小数逗号规范为点,N03只按P3移除已声明的U+202F分组符;三条都表示1234.50。N04先验证整个值确实被括号包围,再按P4保留负号,得到−20.00。
四条确认值相加为1234.50+1234.50+1234.50−20.00=3683.50千克。N05与N06仍留在交付台账中,但不参与这个小计。这里没有舍入政策来替未知数补值,也没有把缺失视为零的依据。
row_id,normalized_value,parse_status,unit
N01,1234.50,confirmed,kg
N02,1234.50,confirmed,kg
N03,1234.50,confirmed,kg
N04,-20.00,confirmed,kg
N05,,ambiguous,kg
N06,,missing,kg
| 记录 | 保留什么 | 为什么不能确认 |
|---|---|---|
| N05 | 候选1234或1.234;normalized_value空 | 没有小数/分组规则,两种解释均有可能 |
| N06 | 空原值;normalized_value空;missing | 没有观测数值,不能靠函数默认值补零 |
用函数处理已确认规则,别让默认值替你做业务判断
把原CSV读成A:D列,A是row_id,B是raw_value,C是rule_id,D是unit。对已确认P2的N02,也就是B3,可以参考下式。它显式指定逗号小数和点分组,并在转换前保留空输入。这里给的是编辑候选,仍需在你的目标应用中执行并对照参考值。
这条公式不是全列自动识别器。它不能套在P1、P3、P4或UNKNOWN行上,再假定所有数字都被正确理解。N03需要匹配真正的分组字符,N04还需要先应用来源负数合同;N05缺少依据,应先返问来源,而不是让函数任选一种含义。
Microsoft同时说明NUMBERVALUE对空字符串返回0。因此,“公式返回0”不能反过来证明原件有一个零。保留原值与状态,再按缺失与已知零的核查方法区分两者。
=IF(B3="","",NUMBERVALUE(B3,",","."))逐条修错,再重算小计
一个错误教学稿可能把N02写成1.2345、把N04写成正20、把N05直接选成1234,并给N06填0。四处错误来源不同,不能仅让AI“重新算一遍总和”。总和可能按错误输入算得很准确。
先恢复每行的原字符串和合同:N02按P2重读,N04恢复负号,N05恢复候选状态,N06恢复missing。再让AI返回完整6行和仅含N01–N04的确认集合,最后重算3683.50。只改最后一句数字,会留下后续导出仍会重复使用的错误明细。
一个能计算的数字,也可能解释错了原件
N02原值1.234,50,AI删掉逗号后写成1.2345,并标为confirmed。
N02的P2明确逗号是小数符、点是分组符,规范化值应为1234.50。保留原值和P2依据。
把确认小计和未决事项一起交付
交付材料应含原CSV、规则表、规范化结果、确认集合以及N05/N06的待核问题。对于N05,请来源确认逗号的角色;对于N06,请确认是未填、未测还是另有约定,不要求AI编出一个更好看的完整总数。
若来源后来确认N05是1.234,保留三位小数再按团队另行确认的汇总/显示规则处理;不能因为其他行显示两位,就先把它改成1.23。数字含义、计算精度和展示格式仍是不同决定。
这份练习交付前的可检查条件
- 6个row_id均在,raw_value与unit未被覆盖,N03的原字符可追溯。
- 确认值依次为1234.50、1234.50、1234.50、−20.00。
- N05保留两个候选、N06保持missing,两条都没有混进确认集合。
- 小计明确标为4条确认记录的3683.50千克,六条完整总量仍未知。
- 目标应用里的实际转换结果另有记录;未运行时写未运行,不声称实测。


