如何从细胞中提取KG数字

我有一组类似于下面的数据,我需要轻松地从一个单元格分离,所以我可以从中提取packsize。

  • Dogfood A-2786-M 25KG / PAIL
  • Catfood E6601 NS 200KG / DRUM
  • Catfood SR9050 18.2KG / PAIL
  • Dogfood BU 1000KG / IBC

包装大小可以改变,产品名称可以不同,但​​始终是数字,然后是/ PAIL,/ DRUM或/ IBC

如果您不想使用macros执行此操作,则可以使用此方法: https : //support.office.com/zh-cn/article/Split-text-into-different-cells-30b14928-5550-41f5- 97ca-7a3e9c363ed7

你可以这样做(详见链接以获得更好的解释):

  1. 单击数据>文本到列
  2. 点击分隔符>下一步
  3. 只需使用空间其他 > /作为分隔符
  4. 点击下一步
  5. select生成的单元格的格式
  6. select您要插入分割数据的单元格

如果你想在一个macros(excel-vba标签)中执行此操作,请使用分割function: https : //msdn.microsoft.com/en-us/library/6x627e5f(v= vs.90).aspx首先分割/作为分隔符,只需使用结果数组中的第一个条目来分隔空间" " )。 从这个分割你得到的KGs作为结果数组的最后一项。

您的方式使用分割function的语法如下:

 your_array = split(<your_string>, <delimiter>) 

考虑以下用户定义函数(UDF)

 Public Function GetKiloGrams(sIN As String) As Double arr = Split(sIN, " ") GetKiloGrams = 0 For Each a In arr If InStr(1, a, "KG") > 0 Then brr = Split(a, "KG") GetKiloGrams = CDbl(brr(0)) Exit Function End If Next a End Function 

它parsing数据并返回适当的值:

在这里输入图像说明

如果您的数据在A列中,则在B1中使用此公式作为A1数据并填写。

 =RIGHT(A1,LEN(A1)-SEARCH("^^",SUBSTITUTE(A1," ","^^",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))+1) 

以下图片显示结果。 图片显示样本和公式

HTH

编辑:

我不确定你的要求是否要数字或包装尺寸。 无论如何,我发现一个相当复杂的公式。 如果你能买得起另一个帮手列,事情很简单。

在C1中使用另一个公式,并抄下来。

 =LEFT(B1,FIND("KG",TRIM(B1),1)) 

结果屏幕截图如下。 样本数据符合OP要求

在我devise这个公式的时候,我觉得一个单一的function可能太复杂了。 不过,我会研究一个function的可能性。