Excel 扩展公式

Excel 扩展公式,excel,excel-formula,Excel,Excel Formula,我有一个500+行中所有值的列表,如: AAC80013, /ACY03537, /ADC64131, /AED59827, /AKC13125, /APS84849, etc... 并想知道如何将它们合并到一个单元格中,使它们如下所示: AAC80013, ACY03537, ADC64131, AED59827, AKC13125, APS84849, 我尝试过合并并居中,但没有成功。然而,我已经找到了一种方法,通过使用an=A4&B4&C4等来做到这一点。。。但我希望有人能给我一个更快

我有一个500+行中所有值的列表,如:

AAC80013, /ACY03537, /ADC64131, /AED59827, /AKC13125, /APS84849, etc...
并想知道如何将它们合并到一个单元格中,使它们如下所示:

AAC80013, ACY03537, ADC64131, AED59827, AKC13125, APS84849,
我尝试过合并并居中,但没有成功。然而,我已经找到了一种方法,通过使用an=A4&B4&C4等来做到这一点。。。但我希望有人能给我一个更快的方法来合并它们,而不是一个一个地去做

Sub combine()
Dim lastCol As Integer, xRow As Integer
Dim cel As Range, rng As Range
Dim delimiter As String, firstCellInfo As String

firstCellInfo = Cells(1, 1).Value

xRow = 1 'change this to the row with your data.
delimiter = "/"

lastCol = ActiveSheet.UsedRange.Columns.Count
Set rng = Range(Cells(xRow, 1), Cells(xRow, lastCol))

For Each cel In rng
    If Left(cel.Value, Len(delimiter)) = delimiter Then
        Debug.Print Right(cel.Value, Len(cel.Value) - Len(delimiter))
        cel.Value = Right(cel.Value, Len(cel) - Len(delimiter))
    End If
    If cel.Column > 1 Then firstCellInfo = firstCellInfo + ", " + cel.Value
Next cel

Cells(2, 1).Value = firstCellInfo

End Sub
注意:将xRow更改为包含数据的任何行。此外,除第一个单元格外,每个单元格中都有一个分隔符/,因此循环将删除该分隔符(如果存在),并将结果添加到字符串firstCellInfo中。在循环结束时,我将这些组合数据放入B1中,这样您就可以运行它并确保它正常工作。如果要将信息放回A1,只需将Cells2,1.Value更改为Cells1,1.Value

此外,如果您想删除额外的数据列B,只需在Cells2,1.Value=firstCellInfo之后添加以下内容:


根据你的问题标签,听起来你在寻找一个简单的、非宏观的解决方案

将多个文本值拼接成一个文本值的过程称为拼接。您已经发现了一种方法,可以通过在项目之间使用符号和来处理公式。另一个是可以在公式中使用的连接函数。但是坦率地说,如果你想进行大量的连接,这两种方法都很糟糕。CONCATENATE函数特别令人讨厌,因为虽然它应该接受一系列值来缝合在一起,但它不接受

因此,如果连接工作很复杂,简化工作负载的最常用方法是编写VBA宏。但这是编程,需要你知道一些事情

这里有一个简单的选择。这是一个手动工作流程,可以使此任务非常快速和轻松

让我们假设您的值在A4:Z4范围内,并假设第5行为空。只需遵循以下步骤:

一,。在单元格B5中输入以下公式:

=SUBSTITUTE(A5&A4&B4,"/",", ")
二,。现在复制B5并选择C5:Z5范围并粘贴

三,。到目前为止,Z5将看起来可怕。别担心。复制Z5

四,。右键单击要包含最终列表的单元格,然后选择“粘贴特殊值”

五,。选择第5行并删除所有行

就这样。一旦你掌握了窍门,大约需要两秒钟

=SUBSTITUTE(A5&A4&B4,"/",", ")