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

问题描述:

我在想如果有一种方法可以从另一个列表中替换单元格值而无需编写VB脚本。Excel - 根据另一列中的值替换单元格值

这里的问题是我试图解决:

我有一个列姓氏:

史密斯
琼斯
泰勒

我有另一个与列ID例如

Smith_ID
Taylor_B
Jones_C

我想与Smith_ID更换SmithJonesJones_C等。显然,我的名单比3项更长的时间。

+0

我不认为它可能只使用公式。 – 2013-05-03 22:55:46

+0

你想如何匹配这些值?我没有看到两个列表之间的共同价值。例如,如果两个列表都有一个说'史密斯'的专栏,那么你的问题就解决了。 – PowerUser 2013-05-03 23:07:42

+2

创建查找列到你的ID列其中只有最后一个名称的左边:如'= LEFT(B5,SEARCH(“_”,B5)-1)'然后你就可以在这两个列使用VLOOKUP返回匹配的ID在你的姓氏列表中的每个值(当然,假设他们都独特而你的ID都遵循相同的模式) – 2013-05-03 23:18:38

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

使用你的榜样,你有工作表Sheet1,说:
史密斯
琼斯
泰勒

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

则执行以下操作:

  1. Sheet 1中与式=vlookup(A1,Sheet2!$A$3:$B$3,2,False)添加一列。这将返回第一行4,第二行9,等
  2. (可选)如果你想完全摆脱原来的价值,你可以复制&粘贴值并删除原始列或只是隐藏原始专栏。

这是你要找的吗?

+0

感谢您的回答却是不正是我一直在寻找。我有相同的工作表中的信息。列A的姓氏相同,姓名出现的次数多于1,列B有ID。为了简单起见,我们可以说ID是姓和名,也就是说他们部分匹配姓。我想根据姓氏查询ID并将其放在C栏。 – 2013-05-04 00:14:06

他可以做到。

  • 与提取物列ID “_” 字符由 “文本到列”

A柱
史密斯
琼斯
泰勒

乙柱
史密斯
泰勒
Jones

C色谱柱
ID

Ç

现在写信给下面的公式

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

我希望你做

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

+1

如果您的答案需要解释,请执行。因为这个答案会帮助所有其他有相同问题的用户 – 2013-10-30 11:25:59

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

一位名叫史密斯,琼斯,泰勒,凯文,叫喊,阿什顿...

b。约翰福音哈佛大学,南加州大学叫喊,凯文克鲁斯,阿什顿债券,史密斯石,泰勒换档...

这里的经典案例是,你有两个几乎相同的列只有略有差异。这可能是一个错字或其他一些错误。 如果我们假设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中的每个单元格的近似匹配应该是唯一的。

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

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

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

我有2列,一个是供应商名称,第二个是供应商地址,但它也包含供应商名称。我需要删除供应商名称,这会让我不知道供应商名称。

例如,如果一列有“Con Ed”,下一列有“Con Ed 123 Street,New York,NY 11111”,我需要用空值替换“Con Ed”,并且只有“123 Street,New约克,纽约11111“在一列。

这就是我所做的,我也会让你知道你能做些什么来完成你的目标。

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

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

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

所以考虑:“Con Ed 123街,纽约,纽约11111” 第一列:(供应商的长度):len(Con Ed)= 6 第二列:(供应商地址的长度):len(Con ([供应商地址],31(37-6))=“,纽约州纽约市11111”

最后,我刚才应用了TRIM功能到第三栏。

在你的情况下,你只想使用连接函数来追加新列的原始列&。

因此,在总结,你将有以下栏目:

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

列2:标识: (Smith_ID,Taylor_B,Jones_C)

栏3:LEN([名称])

Column4:LEN([ID的])

Column5: “替换” 功能 = TRIM(右([编号]([Column4] - [栏3]))

Column6:字符串一起放回 =串联([栏3],[Column5])