如何创建一个Excel“脚本”,用另一个工作表中的列的相关值替换列的值?

时间:2017-09-07 09:54:14

标签: excel excel-formula excel-2010

我没有进入 Microsoft Excel 2010 ,我有关于如何面对这个问题的关注点。

在Excel工作表中,我有2个选项卡。

第一个(将成为“我的数据来源”)名为,其中包含以下内容:

id  country_id  province_name   
1   2           Eastern Province    
2   2           Kigali city 
3   2           Northern Province   
4   2           Southern Province   
5   2           Western province

如您所见,它包含与单一 id 列值相关的 province_name 列。

然后我有另一张名为 Rwanda_Localization 的表格,它包含这样的内容:

Country    City/Province        City/District
Rwanda     Eastern Province     Bugesera
Rwanda     Eastern Province     Gatsibo
Rwanda     Eastern Province     Kayonza
Rwanda     Northern Province    Burera
Rwanda     Northern Province    Gakenke
Rwanda     Southern Province    Gisagara
Rwanda     Southern Province    Huye

如您所见,它包含一个名为城市/省的列,其中包含省名列中相同日期的相同值 sheet。

我需要做的是创建一个“脚本”(在Excel中),用以替换城市/省列的值(在 Rwanda_Localization 表中) 表的相关 id 字段的值。

例如 Rwanda_Localization 表的第一行是:

Rwanda     Eastern Province     Bugesera

并且必须成为:

Rwanda     1        Bugesera

因为东部省相关ID是 1

对于具有 City / Province 字段的不同值的所有其他行,

等等。

如何在Excel中执行此类操作?

1 个答案:

答案 0 :(得分:0)

这个答案是针对命名范围设置的,因为我不知道目标细胞。

设置另一个容纳输出id的列并使用公式:

INDEX(id,MATCH(B2,province_name,0)) - B2是City / Province的第一个单元格

现在您将拥有相关的ID - 如果您计划在之后删除City/Province,请务必复制配方列并粘贴为值以首先删除配方。

索引创建目标单元格的虚拟数组(id),然后获取两个整数,表示从该数组返回的行和列。我假设范围与此相同。 Match返回一个整数,表示完全匹配的位置[,0)],表示我们希望返回的行,因为数组的大小相同。

在这种情况下,不需要列整数,因为我们需要第一列的结果(对于1维数组来说很明显,但是,它默认为1)