从文本字符串中提取数字

时间:2015-11-25 16:09:10

标签: excel excel-vba vba

我想推断文本字符串中的所有数字(基于条件),如果数字由文本分隔,它们也应该分开。下面的例子是为了更好地理解问题,因为它非常复杂

实施例

  INPUT                                             OUTPUT1     OUTPUT2

1 500ML BIA BINGWA SORGHUM                          1           500
2 CLUB 07 VODKA LEMON 24X330ML                      24          330
3 375ML EAGLE LAGER REGULAR RB 375X20ML             20          375
4 KONYAGI GIN 1X500ML                               1           500
5 SAFARI LAGER NRB 24x330 LOCAL                     24          330

备注

  • 第1行OUTPUT1 = 1即使没有1x500ML,也只有500ML
  • 第3行具有相反的顺序,而不是20x375ML - > 375x20ML我认为这可以用"最小的OUTPUT1和最大的OUTPUT2 )来克服。
  • 第5行没有ML所以应该通过用作分隔符的x进行识别

公式和VBA方法都很好。

1 个答案:

答案 0 :(得分:1)

这很容易出错,但它确实为您提供了检查200

的起点

使用excel公式你可以做这样的事情;但每条记录仍然需要进行现场检查。例如,如果产品的名称中的X超出24x330,则会出错或提供错误的值。数据太不稳定,无法生成真正的程序来执行此操作并考虑所有可能性。我们并不是说它无法完成,只是说花时间花在手动上就可以了。

正如您所看到的,我无法轻易处理第3行:

E的公式: = IFERROR(MID(B1,FIND(" X",UPPER(B1)) - 2,2),1)* 1

F的公式: = MID(B1,IF(FIND(" ML",UPPER(B1))≤; 6,1,FIND(" ML",UPPER(B1)) - 3),3- )

enter image description here