2012-08-15 65 views
0

我有一个产品列表excel表单和类别列表excel表单。在Excel中高级查找和替换

在类别excel中有cat_id和cat_name one对应于另一个。

我需要对每个cat_id进行查找和替换,并用cat_name替换产品列表中的数字。

我如何在Excel中做到这一点?

+0

您可以在产品列表中创建一个新列并使用VLOOKUP()从类别表中找到相应的cat_name。 – 2012-08-15 21:07:57

+0

您必须使用'.Find'请参阅此链接http://stackoverflow.com/questions/11972850/item-not-found-in-find-vba – 2012-08-15 21:10:39

回答

0

我不认为你可以用Excel公式一步完成你正在寻找的东西。但是,您可以使用以下方法。

我们假设产品列表被称为ProductList,另一个称为CategoryList。另外,假设工作表ProductList上的cat_id项目在列A中,并且工作表CategoryList上的cat_idcat_name列在列AB中。

首先,您必须确保表CategoryList上的项目按照cat_id的升序排序。然后,在上表ProductList空栏的第一行的单元(让我们说是细胞Q1),输入以下公式:

=LOOKUP($A1,CategoryList!A:A,CategoryList!B:B) 

然后选择单元格Q1并拖动右下角一路直到您的工作表中的数据结束。在此之后,Q列将包含所需的值。

要真正取代了与在QA原始值,你需要复制整列Q做“选择性粘贴”成列A,在其中选择单选按钮“值”。之后,您可以删除临时列Q

如果你想成为关于cat_id项目没有出现在片CategoryList健壮,您可以添加一个检查,这使得公式如下(一行):

=IF($A1<>LOOKUP($A1,CategoryList!A:A,CategoryList!A:A), 
    "Not Found",LOOKUP($A1,CategoryList!A:A,CategoryList!B:B)) 
+0

我正在尝试此答案。 – logan 2012-08-17 01:51:02

+0

我得到它在一张纸上工作,当我拖动黑色方块,虽然它改变了所有的数字..我不得不定义单元格的长度,但它让它工作..即时通讯使用开放式办公室 = LOOKUP(A1,B1:B210,C1:C210) ,当我拖动它变成方形成 = LOOKUP(A2,B2:B211,C2:C2110),它提出了一个问题..我只需要a1来改变而不是其他的。 我怎样才能拖动广场,只有一个列增量? – logan 2012-08-17 02:31:14

+0

如果你希望你的行号在拖动黑色方块的时候保持不变,那么你应该在你希望保持不变的数字之前加一个$符号,如= LOOKUP(A1,B $ 1:B $ 210,C $ 1:C $ 210)。 – 2012-08-17 05:56:56