我有 4 列(c、d、e 和 f),我试图将它们合并到 a 列中。有时只填写 2 列,而其他时候所有 4 列都有数据。我的主要问题是我想进入 A 列的内容不能超过 200 个字符。如果是这样,我需要将其余部分放入B列。如果它确实超过 200 个字符,我需要它回拨到 ; 的最后一个实例。. 这可以在Excel中完成吗?
这些字段中有我的公司数据库的电子邮件地址。
我有 4 列(c、d、e 和 f),我试图将它们合并到 a 列中。有时只填写 2 列,而其他时候所有 4 列都有数据。我的主要问题是我想进入 A 列的内容不能超过 200 个字符。如果是这样,我需要将其余部分放入B列。如果它确实超过 200 个字符,我需要它回拨到 ; 的最后一个实例。. 这可以在Excel中完成吗?
这些字段中有我的公司数据库的电子邮件地址。
你可以试试 joseph4tw 的回答 .. 或者你可以试试这个 VBA
Sub ConcatAddr()
Dim s As String
Dim n, x, x2 As Integer
For x = 1 To 10 '--> you can change this
'concat all first
s = Cells(x, 3) & _
IIf(Not IsEmpty(Cells(x, 4)), ";" & Cells(x, 4), "") & _
IIf(Not IsEmpty(Cells(x, 5)), ";" & Cells(x, 5), "") & _
IIf(Not IsEmpty(Cells(x, 6)), ";" & Cells(x, 6), "")
If Len(s) > 200 Then
For x2 = 200 To 1 Step -1
If Mid(s, x2, 1) = ";" Then
Cells(x, 1) = Mid(s, 1, x2 - 1)
Cells(x, 2) = Mid(s, x2 + 1)
Exit For
End If
Next
Else
If Len(Trim(Replace(s, ";", ""))) > 0 Then
Cells(x, 1) = s
End If
End If
Next
End Sub
像这样的东西?
编辑:处理';' 特点。它不完全是 200,但在大多数情况下应该让你接近。
A1公式:
=IF(LEN(CONCATENATE(C1,D1,E1,F1))>200,LEFT(CONCATENATE(C1,D1,E1,F1),FIND(";",CONCATENATE(C1,D1,E1,F1),170)),CONCATENATE(C1,D1,E1,F1))
B1公式:
=IF(LEN(CONCATENATE(C1,D1,E1,F1))>200,MID(CONCATENATE(C1,D1,E1,F1),FIND(";",CONCATENATE(C1,D1,E1,F1),170)+1,LEN(CONCATENATE(C1,D1,E1,F1))),"")
抄下来