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

问题描述 投票:0回答:2

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

015-02-1-1

我想用“019”代替“015”。但String也可以是:

016-14-5-7

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

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

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

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

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

excel
2个回答
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,这个值用于查找字符串中最右边的字符,将它们连接在一起。


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)

使用CtrlShiftEnter作为数组公式输入

© www.soinside.com 2019 - 2024. All rights reserved.