Excel – 列到一个单元格

Excel – 列到一个单元格

您可以将一列数据移至单个单元格,并用逗号分隔列中的值吗?有点像将文本反转为列。

例如,

1
2
3
4
5

1,2,3,4,5单个单元格中。

答案1

使用用户定义函数比逐个单元格进行硬编码更加灵活

  • &一起去VBE
  • 插入模块
  • 复制并粘贴以下代码
  • &一起回到 Excel

使用新公式,例如 D6 单元格快照中的公式
=ConCat(A1:A5)

您可以使用更复杂的公式,例如 D7
=ConCat(A1:A5,A7:A24)
或 D8 中的 2D公式
=concat(A1:B5,A7:A24)

样本

Function ConCat(ParamArray rng1()) As String
    Dim X
    Dim strOut As String
    Dim strDelim As String
    Dim rng As Range
    Dim lngRow As Long
    Dim lngCol As Long
    Dim lngCnt As Long
    strDelim = ", "
    For lngCnt = LBound(rng1) To UBound(rng1)
        If TypeOf rng1(lngCnt) Is Range Then
            If rng1(lngCnt).Cells.Count > 1 Then
                X = rng1(lngCnt).Value2
                For lngRow = 1 To UBound(X, 1)
                    For lngCol = 1 To UBound(X, 2)
                        strOut = strOut & (strDelim & X(lngRow, lngCol))
                    Next
                Next
            Else
                strOut = strOut & (strDelim & rng2.Value)
            End If
        End If
    Next
    ConCat = Right$(strOut, Len(strOut) - Len(strDelim))
End Function

答案2

  • 首先,

    =concatenate(A1,",")
    

    在您有值的列旁边的下一列中。

  • 其次,复制整列并转到另一张表执行选择性粘贴->转置。

  • 第三,复制刚刚得到的值,打开一个word文档,然后选择粘贴选项->选择“A”,
  • 最后,将 word 文档中的所有内容复制回 excel 工作表中的单元格,您将在一个单元格中获得所有值

答案3

您可以使用连接功能并在单元格和字符串之间交替","

=CONCATENATE(A1,",",A2,",",A3,",",A4,",",A5)

答案4

很棒的回答,karthikeyan。我也不想在 VB 上浪费时间,甚至不想退出 Ctrl+H。这是最简单的,我正在这样做。

  1. 在顶部插入新行(A)。
  2. 在数字 1 的正上方(即 A1 上),输入等号 (=)。
  3. 将逗号 (,) 从 B1 复制/粘贴到 B23(而不是 B24)。
  4. 选择 A1 到 B24,在记事本中复制/粘贴。
  5. 在记事本中按(全选)Ctrl+A,按(复制)Ctrl+C,然后单击 Excel 中的单个单元格(F2),然后按(粘贴)Ctrl+V。

相关内容