如何从细胞中提取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
你可以这样做(详见链接以获得更好的解释):
- 单击数据>文本到列
- 点击分隔符>下一步
- 只需使用空间和其他 >
/
作为分隔符 - 点击下一步
- select生成的单元格的格式
- 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))
结果屏幕截图如下。
在我devise这个公式的时候,我觉得一个单一的function可能太复杂了。 不过,我会研究一个function的可能性。