You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Power Query识别列中的Cost Code(成本代码)数据

成本代码识别解决方案

提炼的成本代码规则

从示例中可总结有效Cost Code的核心特征:

  • 必须以数字开头
  • 主体部分仅包含数字和英文句号,可有多段(如10.01.01、40.001、3000)
  • 允许在主体后追加- 字母组合的后缀(如2000.0001 - ABC)
  • 以下情况判定为无效:包含字母与数字混合的非后缀部分、纯字母、含下划线等特殊符号

正则表达式匹配方案

可以用以下正则表达式精准匹配有效Cost Code:

^\d+(\.\d+)*(- [A-Za-z]+)?$

正则解释

  • ^\d+:开头必须是一个或多个数字
  • (\.\d+)*:可选的、重复出现的「句号+数字」组合,支持多段数字(如.01、.001)
  • (- [A-Za-z]+)?:可选的后缀部分,格式为「空格减号空格+大小写字母组合」
  • $:匹配到字符串结尾,确保无多余无效字符

各工具中的实现示例

1. Excel中使用

在空白单元格(如C2)输入公式,下拉即可批量判断:

=IF(REGEXMATCH(A2,"^\d+(\.\d+)*(- [A-Za-z]+)?$"),"是代码","非代码")

注:需Excel 365及以上版本支持REGEXMATCH函数

2. Python中使用

用re模块实现批量识别:

import re

cost_code_pattern = re.compile(r'^\d+(\.\d+)*(- [A-Za-z]+)?$')

test_codes = [
    "10.01.01", "40.001", "3000", "2000.0001 - ABC",
    "500.ABC", "ABC  DEF", "01_ABC"
]

for code in test_codes:
    if cost_code_pattern.match(code):
        print(f"{code}: 是代码")
    else:
        print(f"{code}: 非代码")

3. SQL中使用(以MySQL为例)

用REGEXP操作符判断:

SELECT 
    A列 AS 待识别内容,
    CASE WHEN A列 REGEXP '^[0-9]+(\.[0-9]+)*(- [A-Za-z]+)?$' 
         THEN '是代码' 
         ELSE '非代码' 
    END AS 识别结果
FROM 你的数据表;

内容的提问来源于stack exchange,提问作者arpitprakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:40:32