如何从细胞中提取KG图

时间:2016-05-11 11:12:38

标签: excel excel-vba vba

我有一组类似于下面的数据,我需要轻松地从一个单元格中分离出来,这样我才能从中提取packize。

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

包装尺寸可以更改,产品名称可以不同,但​​始终是一个数字,后跟/ PAIL,/ DRUM或/ IBC

3 个答案:

答案 0 :(得分:1)

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

您可以这样做(请参阅链接以获得更好的解释):

  1. 点击数据>文字到列
  2. 点击定界>下一步
  3. 只需使用 Space 其他> / as delimiter
  4. 点击下一步
  5. 选择生成的单元格的格式
  6. 选择要插入拆分数据的单元格
  7. 如果要在宏(excel-vba标记)中执行此操作,请使用拆分功能:https://msdn.microsoft.com/en-us/library/6x627e5f(v=vs.90).aspx 首先使用/作为分隔符进行拆分,然后使用结果数组中的第一个条目拆分空间" ")。从该分割中,您可以将KG作为结果数组的最后一个条目。

    使用split函数的语法如下:

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

答案 1 :(得分:0)

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

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

下图显示了结果。 Image showing sample and formula

HTH

编辑:

我不确定您是否需要数字或包装尺寸。无论如何,我发现一个公式非常复杂。如果你能负担得起另一个辅助专栏,事情就很容易了。

在C1中使用另一个公式并复制。

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

结果截图位于下方。 Sample data to meet OP requirement

在设计这个公式时我觉得单个函数可能太复杂了。但是,我将研究单个函数的可能性。

答案 2 :(得分:0)

考虑以下用户定义函数(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

它解析数据并返回正确的值:

enter image description here