2010-01-16 130 views
3

我有一个Microsoft Excel工作表,其中有数百行项目。此项目工作表中的类别列填充了类别名称,因为它是项目与类别之间的多对一关系,所以它们是重复的。我想用第二个工作表中的ID替换这些类别字符串,该工作表具有与ID配对的类别名称的唯一列表。所以,两者之间的共同联系就是类别名称。用Excel中的ID替换字符串

如何在Microsoft Excel中执行此操作?它是否涉及制作vba宏?

+0

如何将它转换成合适的关系型数据库? – kennytm 2010-01-16 06:15:19

+0

我的妻子正在为我创建数据以加载到sqlite数据库。她不是程序员。 :/ – getWeberForStackExchange 2010-01-16 06:33:03

+0

感谢大家对VLOOKUP/LOOKUP调用的建议。 – getWeberForStackExchange 2010-01-16 06:47:19

回答

4

首先,正如评论所暗示的,我认为一个好主意可以移动到数据库,即使MS Access也足够了。让我们说你不能这么做,所以你需要这样做的商业规则在excel中很好。

好吧,让我们开始吧。

  • 从片材与所述项目数据, 复制含有 类别strins整列,并粘贴到 一个新的工作表。
  • 使用移除重复命令到 确保您在此新工作表中只有唯一的 值。
  • 现在,向右(必须是正确的,我们将在VLOOKUP使用这个版本)这个新列的, 创建一个包含1..N, 模拟自动编号列。
  • 现在在原始工作表上,将 新列插入 当前类别列的右侧。使用VLOOKUP 从 Autonumber表中检索值。这样 =VLOOKUP(A1,Sheet1!$D$1:$E$6,2)

你已经检查后,现在您的所有标识看起来正确的东西,你可以,如果你愿意的话从项目表中删除类别列。

我仍然会建议更换使用数据库来实现这个X-)

0

您需要其中一个LOOKUP功能。这里是an article on this topic from Microsoft。和this is another one更多的细节和例子。

请注意,使用LOOKUP,您将能够创建一个新的列,并在类别名称旁边添加ID。如果这是一次性操作,那么您可以用新的ID列替换类别列。

3

使用VLOOKUP

https://xe8.xanga.com/cf0f240006531262266720/w209023740.png

(你必须排序类别名称为它工作。)

+2

或使用INDEX(id_list,MATCH(name,name_list,0))或使用VLOOKUP(name,names_and_ids,2,__ FALSE__),它不要求对列表进行排序。 – 2010-01-16 09:59:35