我有一个看起来像这样的字符串:
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?
如果是这样,公式怎么样?
假设您的数据在单元格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,这个值用于查找字符串中最右边的字符,将它们连接在一起。
您也可以选择这样的查找方法
=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作为数组公式输入