根据像元长度设置像元值

时间:2019-12-03 02:20:24

标签: excel vba excel-formula

我在D列中有这种产品ID:

  • 1942-PS-M-01
  • 1942-PS-M-233
  • 1942-P-M-25
  • 1942-P-L-200

我想使用产品ID值中的最后2/3号在G列中设置值。

我尝试使用= MID([Product_ID],11,3)和= MID([Sample_ID],10,3)这样的公式,但是这些id都不有效,我必须输入1到1的公式,因为该ID的长度不同。

使用vba有什么办法吗?因为我有近2万行数据

我有一个想法,例如使用if(len([Product_ID])<13然后= MID([Product_ID],11,3)或if(len([Product_ID])<12然后= MID([Product_ID], 10,3),但不知道如何在vba中实现

1 个答案:

答案 0 :(得分:1)

使用以下公式:

=MID(D1,FIND("-",D1,FIND("-",D1,FIND("-",D1)+1)+1)+1,LEN(D1))

只要您的产品ID中始终有三个破折号,就可以使用。它先寻找第一个破折号的位置,然后寻找第二个破折号,然后是第三个破折号,并提取第三个破折号之后的其余字符串。