Excel – 根据另一列中的值replace单元格值

我想知道是否有一种方法来replace另一个列表中的单元格值,而不必写一个VB脚本。

这是我想解决的问题:

我有一列的姓氏:

工匠
琼斯
泰勒
等等

我有另外一个ID列的例如

Smith_ID
Taylor_B
Jones_C

我想用Smith_IDreplaceSmithSmith_IDreplaceJones等等。显然,我的列表比3个条目长得多。

他可以做到。

  • 通过“Text to Columns”提取“_”字符的列ID

一列
工匠
琼斯
泰勒

B栏
工匠
泰勒
琼斯

C列
ID

C

现在写下面的公式

 =CONCATENATE(A1;"_";VLOOKUP(A1;$B$1:$C$3;2;FALSE)) 

我希望你会

如果你在2个列表之间有一个共同的值,那么你可以使用Vlookup() (见更好的例子链接)来匹配2。

使用你的例子,你有Sheet1说:
工匠
琼斯
泰勒

在Sheet2中,您有:
史密斯4
琼斯9
泰勒6

然后这样做:

  1. 在Sheet1中,添加公式=vlookup(A1,Sheet2!$A$3:$B$3,2,False) 。 这将返回第一行4,第二行9等。
  2. (可选)如果您想彻底清除原始值,则可以复制并粘贴值并删除原始列或者只是隐藏原始列。

这是你在找什么?

=INDEX('All_Linguists_All_ProjectsFri J'!$DA$2:'All_Linguists_All_ProjectsFri J'!$D$71355,MATCH(A2,'All_Linguists_All_ProjectsFri J'!C:C,FALSE),1)

没有时间来解释它,但是如果你知道如何在Excel中编写公式,这应该是有用的。 对不起,不解释。

在一般情况下回答这个问题,假设你有两列:

史密斯,琼斯,泰勒,凯文,耶尔,阿什顿…

B约翰·哈佛,Yell USC,凯文·克鲁斯,阿什顿·邦德,史密斯·斯通,泰勒class…

这里的经典案例是,你有两个几乎相同的列只有略有差异。 这可能是一个错字或其他一些错误。 如果我们假设B列是你想要的正确的东西,你想要做的就是用A列中的单元格的值replaceB列中的单元格的值。

因此,对于A中的每个单元格,您想要知道其在B列中的近似匹配的位置。例如,给定A1(Smith),您想知道Smith Stone在哪里,在这种情况下是B5。

以新的列C开始,结合匹配函数和通配符,用以下公式填充C1:

row_index = match(A1&“ ”,$ B $ 1:$ B $ 6,0)

现在提取对应于列A的每个近似匹配的row_index。然后通过使用

=指数($ B $ 1:$ B $ 6 ROW_INDEX,0)

这会在单元格C1中返回“史密斯石”。 其他细胞也一样。

*备注:这种方法最大的缺陷是它需要B中的每个单元格的近似匹配应该是唯一的。

希望你使用的是excel,并且你想从另一个同样原始的单元格中replace一个原始单元格的值,而这个必须为整列完成,而不是形成选定的原始值。

在这种情况下,您可以复制要保留的值(即ID列),然后在列姓中删除相同的值。

如果值是相同的原始,那么没有问题,并从您的查询看来,价值是相同的原始。