评论
哪有程序员不会Excel?快速实现工业CNC切割零件WPS表格排序(字母+ 数字类型)

哪有程序员不会Excel?快速实现工业CNC切割零件WPS表格排序(字母+ 数字类型)

没有一种生活是可惜的,也没有一种生活是不值得的,所有的生活都充满了财富,只不过看你开采还是没有开采

哪有程序员不会Excel?快速实现工业CNC切割零件WPS表格排序(字母+ 数字类型)

哪有程序员不会Excel快速实现工业CNC切割零件WPS表格排序(字母+ 数字类型)

按角度来说是要写一个Py脚本自动化来实现该功能。但限制于公司的系统是wind7,vscode也只能安装旧版本,而且还要安装pandas库;于是本文提供直接手动操作excel,和py代码

前提

下发的表格清单格式如下图,我们理想效果是零件号他按字母按A-Z排序,数字从小到大升序;而困难的是零件号组成结构复杂

哪有程序员不会Excel?快速实现工业CNC切割零件WPS表格排序(字母+ 数字类型)

操作步骤

插入列

在原零件号在 B 列,在 C 列和 D 列插入空白列,分别用于存放零件号的字母部分和数字部分

哪有程序员不会Excel?快速实现工业CNC切割零件WPS表格排序(字母+ 数字类型)

提取字母

在 C2 单元格输入公式

=LEFT(B2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},B2&"0123456789"))-1)

接着,将鼠标指针移至该单元格右下角,当指针变为黑色 “十” 字形状时,按住鼠标左键向下拖动,应用此公式到整列

哪有程序员不会Excel?快速实现工业CNC切割零件WPS表格排序(字母+ 数字类型)

提取数字

在 D2 单元格输入公式

=VALUE(MID(B2,LEN(C2)+1,LEN(B2)))

同样地,使用填充柄向下拖动,将公式应用到整列

排序

选中数据,在菜单栏中,找到 “数据” 选项卡,点击 “排序”-“自定义排序” 按钮,会弹出 “排序” 对话框

在 “主要关键字” 下拉框中选择字母部分所在的列(这里是 C 列对应的列名),排序依据选择 “数值”,次序选择 “升序”

点击 “添加条件”,在 “次要关键字” 下拉框中选择数字部分所在的列(这里是 D 列对应的列名),排序依据选择 “数值”,次序选择 “升序”

最后

这是限制于电脑环境,当然 这可以使用py写脚本

import pandas as pd

# 读取文件

excel_file = pd.ExcelFile('/mnt/工作簿1.xlsx')

# 获取指定工作表中的数据

df = excel_file.parse('Sheet1')

# 提取字母部分

def extract_letters(part_number):

    import re

    match = re.match(r'[A-Za-z]+', part_number)

    return match.group() if match else ''

# 提取数字部分

def extract_numbers(part_number):

    import re

    match = re.search(r'\d+', part_number)

    return int(match.group()) if match else 0

df['字母部分'] = df['零件号'].apply(extract_letters)

df['数字部分'] = df['零件号'].apply(extract_numbers)

# 先按字母部分升序排序,再按数字部分升序排序

df_sorted = df.sort_values(by=['字母部分', '数字部分'])

# 删除提取的辅助列

df_sorted = df_sorted.drop(columns=['字母部分', '数字部分'])

# 将结果保存为 Excel 文件

file_path = '/mnt/工作簿1_排序后.xlsx'

df_sorted.to_excel(file_path, index=False)