Excel – 根据另一列中的值replace单元格值
我想知道是否有一种方法来replace另一个列表中的单元格值,而不必写一个VB脚本。
这是我想解决的问题:
我有一列的姓氏:
工匠
琼斯
泰勒
等等
我有另外一个ID列的例如
Smith_ID
Taylor_B
Jones_C
我想用Smith_ID
replaceSmith
用Smith_ID
replaceJones
等等。显然,我的列表比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
然后这样做:
- 在Sheet1中,添加公式
=vlookup(A1,Sheet2!$A$3:$B$3,2,False)
。 这将返回第一行4,第二行9等。 - (可选)如果您想彻底清除原始值,则可以复制并粘贴值并删除原始列或者只是隐藏原始列。
这是你在找什么?
=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列),然后在列姓中删除相同的值。
如果值是相同的原始,那么没有问题,并从您的查询看来,价值是相同的原始。