【发布时间】:2017-02-01 15:30:37
【问题描述】:
我有一个产品列表 excel 表和类别列表 excel 表。
在excel类别中有cat_id和cat_name一一对应。
我需要对每个 cat_id 进行查找和替换,并将产品列表中的数字替换为 cat_name。
我将如何在 excel 中执行此操作?
【问题讨论】:
-
您可以在您的产品列表中创建一个新列并使用 VLOOKUP() 从类别表中找到相应的 cat_name。
我有一个产品列表 excel 表和类别列表 excel 表。
在excel类别中有cat_id和cat_name一一对应。
我需要对每个 cat_id 进行查找和替换,并将产品列表中的数字替换为 cat_name。
我将如何在 excel 中执行此操作?
【问题讨论】:
我认为您无法通过 Excel 公式一步实现您的目标。但是,您可以使用以下方法。
假设产品列表表名为ProductList,另一个名为CategoryList。另外,假设工作表ProductList 上的cat_id 项目位于A 列中,工作表CategoryList 上的cat_id 和cat_name 列位于A 和B 列中。
首先,您必须确保工作表CategoryList 上的项目在cat_id 上按升序排序。然后,在工作表ProductList(假设是单元格Q1)上空列的第一行的单元格中,输入以下公式:
=LOOKUP($A1,CategoryList!A:A,CategoryList!B:B)
然后选择单元格Q1 并将右下角一直向下拖到工作表中数据的末尾。在此之后,Q 列将包含所需的值。
要将A 列中的原始值实际替换为Q 中的值,您需要复制整个Q 列并将“选择性粘贴”到A 列中,您可以在其中选择单选按钮“值” .之后,您可以删除临时列Q。
如果您想对工作表CategoryList 上不存在的cat_id 项目保持稳健,您可以添加一个检查,使公式如下(单行):
=IF($A1<>LOOKUP($A1,CategoryList!A:A,CategoryList!A:A),
"Not Found",LOOKUP($A1,CategoryList!A:A,CategoryList!B:B))
【讨论】:
Powershell 脚本扩展 PSExcel 有一些加入功能:
PSExcel: https://github.com/RamblingCookieMonster/PSExcel
方法:
Join-Worksheet -Path
我已尝试搜索并成功替换。 另请参阅我的回答: Perform find & replace in excel doc in C#
【讨论】: