-1

我有 4 列(c、d、e 和 f),我试图将它们合并到 a 列中。有时只填写 2 列,而其他时候所有 4 列都有数据。我的主要问题是我想进入 A 列内容不能超过 200 个字符。如果是这样,我需要将其余部分放入B列。如果它确实超过 200 个字符,我需要它回拨到 ; 的最后一个实例. 这可以在Excel中完成吗?

这些字段中有我的公司数据库的电子邮件地址。

4

2 回答 2

2

你可以试试 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
于 2013-06-26T09:05:42.860 回答
2

像这样的东西?

编辑:处理';' 特点。它不完全是 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))),"")

抄下来

于 2013-06-26T00:55:23.517 回答