首页 热点资讯 义务教育 高等教育 出国留学 考研考公

EXCEL中如何批量替换

发布网友

我来回答

5个回答

热心网友

在D2单元格输入以下公式,然后向下填充公式

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C2,A$2,B$2),A$3,B$3),A$4,B$4),A$5,B$5),A$6,B$6),A$7,B$7),A$8,B$8),A$9,B$9),A$10,B$10)

即交AB列逐项替换。

详见附图附表:

热心网友

第一步:
D2输入:="=vlookup("""&SUBSTITUTE(C2," ",""",A:B,2,0)&"" ""&vlookup(""")&""",A:B,2,0)"
下拉复制

第二步:
将D列复制-选择性粘贴为数值

第三步:选中D列,
查找:=
替换:=

这样就能出结果了

热心网友

(假设结果在D列)D2=vlookup(mid(c1,1,1),$A:$B,2,)&D2=vlookup(mid(c1,1,1),$A:$B,2,)&D2=vlookup(mid(c1,2,1),$A:$B,2,)&D2=vlookup(mid(c1,3,1),$A:$B,2,)&D2=vlookup(mid(c1,4,1),$A:$B,2,)&........,下拉填充。这里注意这里面vlookup函数的多少等于你C列中字母的多少。

热心网友

Function GetString(A As String) As String

   Dim arr

   Dim rst As String

   rst = ""

   arr = Split(A, " ")

    For i = 0 To UBound(arr)

        TT = Application.WorksheetFunction.VLookup(arr(i), Range("A2:B65535"), 2, 0)

        rst = rst + CStr(TT) + " "

    Next

   GetString = rst

End Function

'用VBA建个函数,之后就像使用Excel的函数一样,输入=GetString(参数),然后一拖就OK了

'以上A1为序号,B1为线号

热心网友

先选中第三列,再使用excel本身的替换功能追问几百个序号和线号对应,这种替换太累。
如何不用每一个序号的替换(因数据比较多),通过序号和线号对应关系实现批量替换。

追答如果范围列中每行只有一个字母,那么用VLOOKUP函数就可以实现。
但是现在有多个字母,这样就得结合别的函数,先将每个字母提取出来,再将每个字母替换,然后再将所有替换后的内容再拼接起来。这样至少要用到四个函数。不但公式会很长,而且容易出错。其复杂程度,倒不如这个方法容易些。我是看你的例子,第一列最多有26个字母,而第二列只有10种,所以才用这个方法。如果你的实际问题有好几百种,那就另当别论了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com