根据描述创建组ID

时间:2016-10-27 07:46:46

标签: sql sql-server excel vba excel-vba


我有一张表格(Excel格式)如下:

**Company name**
2016 Microsoft company
2015 ANZ (north) Co.ltd
2015(south) Microsoft Co.Ltd
2016 ANZ Co.ltd
COMPANY OF FRIESLAND CAMPINA (milk) Australia
CAMPINA (Food) Co.Ltd
2015 CAMPINA (Food) Co.Ltd
2015COMPANY OF FRIESLAND CAMPINA (milk)  Indo
Co.FRIESLAND CAMPINA (milk)  Thai land

我想根据公司名称生成ID,如下所示:

Company name                                             |ID  | Notes
2016 Microsoft company                                   | 1  | Microsoft
2015 ANZ (north) Co.ltd                                  | 2  | ANZ
2015(south) Microsoft Co.Ltd                             | 1  | Microsoft
2016 ANZ Co.ltd                                          | 2  | ANZ
COMPANY OF FRIESLAND CAMPINA (milk) Australia            | 3  | Friesland campina (milk)
CAMPINA (Food) Co.Ltd                                    | 4  | Campina (Food)
2015 CAMPINA (Food) Co.Ltd                               | 4  | Campina (Food)
2015COMPANY OF FRIESLAND CAMPINA (milk)  Indo            | 3  | Friesland campina (milk)
Co.FRIESLAND CAMPINA (milk)  Thai land                   | 3  | Friesland Campina (milk)

根据公司名称,没有确切的规则来定义ID。在我看来,我尝试定义每个记录的关键词,然后扫描列表以找到包含文本的相同值。最后,我创建了ID。
我需要创建一个函数或脚本来自动定义它。可以使用Excel VBA或SQL Server脚本完成。

在excel中,我可以使用搜索和IF功能之间的组合来执行此任务。但它只适用于可能的公司并排记录的情况。我不知道如何通过Excel函数扫描列表。另一个问题是如何定义正确的关键字?我只是使用MID函数来获取临时密钥。

IF(ISNUMBER(SEARCH(MID(A2,12,8),A1)),B1,B1+1)

1 个答案:

答案 0 :(得分:0)

我会使用一个向下复制的数组来开始像

这样的东西

=MAX(IF(NOT(ISERROR(SEARCH($C$1:$C$3,$a1))),ROW($C$1:$C$3),0))

然后会得到以下结果

enter image description here