发布网友
共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种,所以才用这个方法。如果你的实际问题有好几百种,那就另当别论了。