提取电子表格中的确切字词

时间:2015-11-20 11:52:35

标签: excel excel-vba formula vba

尝试将单元格 a 中的数据与单元格 b 分开。

我有大约38,000行,在这些行中我有需要从描述中提取的数据,如大小,颜色,适合度等。

以下是一个例子。

Shirt color: blue size: xl
Shirt BLACK
Shirt - Black

或任何数据组合。

我想在有大小的行上:xl color:blue要被提取并放入b c d e列。

-Black xl相同的是那些被提取并放在一个单独的行中。

1 个答案:

答案 0 :(得分:4)

首先创建一个简单的 UDF(),从短语中提取一个颜色词:

Public Function GetColor(inpt As String) As String
   ary = Array("red", "green", "blue", "white", "black", "gray", "grey", "yellow")
   GetColor = ""

   For Each a In ary
      If InStr(1, LCase(inpt), a) > 0 Then
         GetColor = a
         Exit Function
      End If
   Next a
End Function

并将其应用于列:

enter image description here

您自然会修改此示例 UDF()以包含您的一组颜色词。然后,您将创建并使用类似的 UDF()s 来提取大小,文章类型等。

修改#1:

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      = GETCOLOR(A1)

      要了解有关宏的更多信息,请参阅:

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      有关UDF的详细信息,请参阅:

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      必须启用宏才能使其生效!