繁体   English   中英

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

[英]Excel - Replace cell value based on a value in another column

我想知道是否存在一种无需编写VB脚本即可替换另一个列表中的单元格值的方法。

这是我要解决的问题:

我在一栏中有姓:

史密斯
琼斯
泰勒
等等

我还有另一列ID,例如

Smith_ID
泰勒
琼斯

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

他可以做到。

  • 通过“文本到列”提取带有“ _”字符的列ID

一栏
史密斯
琼斯
泰勒

B柱
史密斯
泰勒
琼斯

C柱
ID

C

现在写以下公式

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

我希望你会

如果两个列表之间的值相同,则可以使用Vlookup() (请参见链接以获取更好的示例)来匹配两个列表。

使用您的示例,Sheet1会显示:
史密斯
琼斯
泰勒

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

然后执行以下操作:

  1. 在Sheet1中,添加具有公式=vlookup(A1,Sheet2!$A$3:$B$3,2,False) 第一行返回4,第二行返回9,依此类推。
  2. (可选)如果要完全摆脱原始值,则可以复制并粘贴值并删除原始列,或者仅隐藏原始列。

这是您要找的东西吗?

要在一般情况下回答此问题,假设您有两列,如下所示:

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

B 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 = match(A1&“ ”,$ B $ 1:$ B $ 6,0)

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

=索引($ B $ 1:$ B $ 6,row_index,0)

在单元格C1中返回“史密斯·斯通”。 其他单元格也一样。

*注:此方法的最大缺陷是,它要求B中的近似匹配,因为A中的每个单元格都是唯一的。

我有2列,一列是供应商名称,第二列是供应商地址,但其中也包含供应商名称。 我需要剔除供应商名称,这会使我留下没有名称的供应商地址。

例如,如果一列包含“ Con Ed”,下一列包含“ Con Ed 123 Street,纽约,纽约11111”,则我需要将“ Con Ed”替换为空,而只有“ 123 Street,纽约,NY 11111” ”列中。

这是我所做的,并且我还将让您知道可以做什么以实现您的目标。

首先,我创建了一个新列,并将其设置为供应商名称的长度(使用LEN()函数)。

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

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

因此,请考虑:“ Con Ed 123 Street,纽约,纽约州11111”第1列:(供应商长度):len(Con Ed)= 6第2列:(供应商地址长度):len(Con Ed 123 Street,纽约,NY 11111)= 37第三栏:右([供应商地址],31(37-6))=“,纽约,NY 11111”

最后,我仅将TRIM函数应用于第三列。

在您的情况下,您只想使用Concatenate函数来添加原始列和新列。

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

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

栏2:ID:(Smith_ID,Taylor_B,Jones_C)

列3:Len([名称])

列4:Len([IDs])

列5:“替换”函数= TRIM(右([IDs],([Column4]-[Column3]))

Column6:字符串放在一起= Concatenate([Column3],[Column5])

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

希望您使用的是excel,因为您希望从同一原始单元格的另一个单元格中替换一个原始单元格的值,所以必须对整个列进行此操作,而不要形成选定的原始单元格。

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

如果值是相同的原始值,那么就没有问题,并且从查询中可以看出,值是相同的原始值。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM