发布网友 发布时间:2022-03-09 00:44
共5个回答
热心网友 时间:2022-03-09 02:13
在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列逐项替换。
详见附图附表:
热心网友 时间:2022-03-09 03:48
第一步:热心网友 时间:2022-03-09 05:39
(假设结果在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列中字母的多少。热心网友 时间:2022-03-09 07:47
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为线号
热心网友 时间:2022-03-09 10:12
先选中第三列,再使用excel本身的替换功能追问几百个序号和线号对应,这种替换太累。追答如果范围列中每行只有一个字母,那么用VLOOKUP函数就可以实现。
但是现在有多个字母,这样就得结合别的函数,先将每个字母提取出来,再将每个字母替换,然后再将所有替换后的内容再拼接起来。这样至少要用到四个函数。不但公式会很长,而且容易出错。其复杂程度,倒不如这个方法容易些。我是看你的例子,第一列最多有26个字母,而第二列只有10种,所以才用这个方法。如果你的实际问题有好几百种,那就另当别论了。