如何在Excel/Google Sheets中按类别提取产品ID最大值?
提取指定类别产品ID的最大值(Excel/Google Sheets)
针对同一列中类似F1、G2这类字母前缀+数字后缀的产品ID,要单独获取某类别的最大ID,可通过以下公式实现:
Google Sheets 公式
假设产品ID存储在A列,要提取F类的最大ID:
=CONCATENATE("F", MAX(ARRAYFORMULA(IF(LEFT(A:A,1)="F", VALUE(RIGHT(A:A, LEN(A:A)-1)), 0))))
- 逻辑说明:
LEFT(A:A,1)="F":筛选出所有以F开头的产品IDRIGHT(A:A, LEN(A:A)-1):提取ID中的数字部分VALUE(...):将数字字符串转为数值,确保MAX能正确计算MAX(...):取该类别下的最大数字CONCATENATE("F", ...):把前缀字母和最大数字拼接成完整ID
Excel 公式
同样假设产品ID在A列,提取F类最大ID:
="F"&MAX(IF(LEFT(A:A,1)="F",--RIGHT(A:A,LEN(A:A)-1),0))
- 注意:Excel 2019及更早版本需按
Ctrl+Shift+Enter作为数组公式执行;Excel 365/2021可直接回车。 - 逻辑和Google Sheets一致,
--符号用于将数字字符串转为数值。
扩展适配
如果类别前缀是多字母(如AB123),只需调整公式中提取前缀的长度:
- 比如提取AB类最大ID,把
LEFT(A:A,1)改成LEFT(A:A,2),RIGHT(A:A, LEN(A:A)-1)改成RIGHT(A:A, LEN(A:A)-2)即可。
快速生成下一个编号
要直接得到下一个可用编号(如当前最大是F37,生成F38),只需在MAX计算后加1:
// Google Sheets =CONCATENATE("F", MAX(ARRAYFORMULA(IF(LEFT(A:A,1)="F", VALUE(RIGHT(A:A, LEN(A:A)-1)), 0)))+1) // Excel ="F"&MAX(IF(LEFT(A:A,1)="F",--RIGHT(A:A,LEN(A:A)-1),0))+1
内容的提问来源于stack exchange,提问作者Aleksei Rurikovich
相关产品推荐
相关产品推荐

