Excel - 根据另一列中的值替换单元格值

时间:2013-05-03 22:53:55

标签: excel

我想知道是否有办法在不必编写VB脚本的情况下从另一个列表中替换单元格值。

以下是我要解决的问题:

我在列中有姓:

史密斯
琼斯
泰勒

我有另一个包含ID的列,例如

Smith_ID
Taylor_B
Jones_C

我想将Smith替换为Smith_ID,将Jones替换为Jones_C等。显然,我的列表比3个条目长得多。

7 个答案:

答案 0 :(得分:2)

他可以做到。

  • 使用“文本到列”
  • 的“_”字符提取列ID

专栏
史密斯
琼斯
泰勒

B栏
史密斯
泰勒
琼斯

C栏
ID

Ç

现在写下面的公式

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

我希望你做到

答案 1 :(得分:1)

如果两个列表之间有共同值,那么您可以使用Vlookup()(请参阅链接以获取更好的示例)以匹配2。

使用您的示例,您有Sheet1说:
史密斯
琼斯
泰勒

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

然后这样做:

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

答案 2 :(得分:1)

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

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

John Harvard,Yell USC,Kevin Cruise,Ashton Bond,Smith Stone,Taylor Shift ......

这里的经典案例是你有两个非常相似的列只有略有不同。这可能是一个错字或其他一些错误。 如果我们假设B列是您想要的正确的东西,那么您想要做的是在B列中替换A列中的单元格值。

因此,对于A中的每个单元格,您想知道其在B列中的近似匹配的位置。例如,给定A1(Smith),您想知道Smith Stone的位置,在本例中为B5。

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

ROW_INDEX =匹配(A1&安培; “”,$ B $ 1:$ B $ 6,0)

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

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

返回单元格C1中的“Smith Stone”。其他细胞也一样。

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

答案 3 :(得分:1)

我有2列,一列是供应商名称,第二列是供应商地址,但它也包含供应商名称。我需要删除供应商名称,这将留下没有名称的供应商地址。

例如,如果一列有" Con Ed",下一列有" Con Ed 123 Street,纽约,NY 11111",我需要更换" Con ED"与null,只有" 123街,纽约,纽约11111"在专栏中。

以下是我的所作所为,我也会告诉您如何才能实现目标。

首先,我创建了一个新列,并将其设置为Vendor Name的Length(使用LEN()函数)。

然后我创建了另一个新列并将其设置为供应商地址的长度。

第三列并设置为使用Right()函数。如果文本是供应商地址,则长度是地址长度减去供应商名称的长度。

所以考虑一下:" Con Ed 123 Street,New York,NY 11111" 第1栏:(供应商的长度):len(Con Ed)= 6 第二栏:(供应商地址的长度):len(Con Ed 123 Street,New York,NY 11111)= 37 第3栏:右([供应商地址],31(37-6))=",纽约,纽约11111"

最后,我刚将TRIM功能应用于第3列。

在您的情况下,您只想使用Concatenate函数附加原始列&新专栏。

总而言之,您将拥有以下列:

第1栏:名称: (史密斯,琼斯,泰勒)

第2列:ID: (Smith_ID,Taylor_B,Jones_C)

Column3:Len([Names])

Column4:Len([IDs])

第5列:"替换"功能 = TRIM(右([ID],([Column4] - [Column3]))

Column6:将字符串放回原处 =:连接([栏3],[Column5])

答案 4 :(得分:0)

=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中编写公式,这应该是有用的。很抱歉没有解释。

答案 5 :(得分:0)

希望您使用的是excel,并且您希望从同一原始的另一个单元格替换raw的一个单元格的值,这必须对整个列进行,而不是形成选定的原始。

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

如果值是相同的原始值,则没有问题,并且从您的查询中看起来值是相同的原始值。

答案 6 :(得分:0)

我在单元格B1中搜索字母“ s”时使用此公式,如果找到,则将单词“加法”连接到单元格A1的值,否则仅取单元格A1的值。

=IF(ISNUMBER(SEARCH("s",B1))=TRUE,CONCAT(A1, "  addition"),A1)