如何处理SKU列数据?移除“-+后续字母”及之后内容保留指定部分
SKU数据处理解决方案
方案一:Excel 365/2021 正则替换法
直接用REGEXREPLACE函数精准匹配并替换,公式如下:
=REGEXREPLACE(A2, "([a-zA-Z])-.*", "$1")
逻辑说明
- 正则表达式
([a-zA-Z])-.*会定位到任意字母后紧跟的-,以及该符号之后的所有内容;括号内的[a-zA-Z]是捕获组,用于保留这个字母 - 替换值
$1表示只保留捕获到的字母及其之前的有效SKU部分,直接移除目标-及后续冗余内容
测试验证:
- 原SKU示例处理后,完全符合你给出的预期结果:
c-105-018-110-061-113和c-110-419-002
方案二:兼容旧版Excel的非正则方案
如果你用的是不支持正则函数的旧版Excel,用以下组合公式:
=LEFT(A2,FIND("-",A2,FIND(LEFT(A2),A2)+1)-1)
逻辑说明
LEFT(A2)提取SKU开头的第一个字母FIND(LEFT(A2),A2)+1定位到该字母的下一个字符位置FIND("-",A2,...)从上述位置开始,找到第一个-的位置LEFT(A2,...-1)截取到该-的前一位,保留有效SKU部分
如果SKU开头包含多个连续字母(比如abc-123-456-xxx),用下面的数组公式(输入后按Ctrl+Shift+Enter确认):
=LEFT(A2,FIND("-",A2,MAX(IF(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))<65,0,ROW(INDIRECT("1:"&LEN(A2)))))+1)-1)
这个公式会先找到最后一个字母的位置,再定位其后的第一个-,确保完整保留字母开头的有效SKU。
内容的提问来源于stack exchange,提问作者HelloWorld
相关产品推荐
相关产品推荐

