使用Excel公式替换字符串的部分内容

时间:2018-05-31 06:53:37

标签: excel

我有一个看起来像这样的字符串:

015-02-1-1

我想将“015”替换为“019”。 但String也可以是:

016-14-5-7

在这种情况下,“016”应替换为“018”

以下是应替换的所有值的列表:

015 => 019
016 => 018
018 => 016
019 => 020
020 => 021
021 => 022
022 => 023
023 => 024 

字符串的其余部分(第一个破折号之后的所有内容)应该保持不变。这可以使用公式实现,还是需要VBA?

如果是这样,那个公式怎么样?

2 个答案:

答案 0 :(得分:0)

这是一个假设您的数据在单元格G1中开始的公式:

=LEFT(G1,1)&IF(MID(G1,2,2)="15",19,IF(MID(G1,2,2)="16",18,IF(MID(G1,2,2)="18",16,IF(MID(G1,2,2)="19",20,IF(MID(G1,2,2)="20",21,IF(MID(G1,2,2)="21",22,IF(MID(G1,2,2)="22",23,IF(MID(G1,2,2)="23",24,""))))))))&RIGHT(G1,LEN(G1)-3)

如何工作,找到字符串的第一个字符(G1,1)

使用嵌套ifs更改值,使用mid查找我们想要更改的值,因为字符串被视为文本,我们必须使用“”来引用值。

然后将其余的字符串添加回来,找​​到G1字符串的长度,然后减去len,此值用于查找字符串的最右侧字符以将它们连接在一起。

答案 1 :(得分:0)

你也可以选择像这样的查找方法

=IFERROR(HLOOKUP(LEFT(A1,3),{"015","016","018","019","020","021","022","023";"019","018","016","020","021","022","023","024"},2,FALSE),LEFT(A1,3))&RIGHT(A1,LEN(A1)-3)

使用 Ctrl Shift 输入

作为数组公式输入