如何将来自2列的数据与由符号分隔的值组合?

时间:2015-11-29 14:17:27

标签: excel excel-formula worksheet-function

第1列中的数据包含由'#'分隔的数据类型符号:

Year#Storey#Area#Condition#Name

第二列中的数据包含与第一列中的数据类型相对应的信息,也由'#'分隔。符号:

2015#3#170#Renovated#John

我希望合并第1列和第2列的信息,并按以下格式获取数据:

Year - 2015
Storey - 3
Area - 170
Condition - Renovated
Name - John

澄清我提供我想要的图片: height="50" width="50"

何在Excel中实现它?我需要指定什么样的公式?

2 个答案:

答案 0 :(得分:2)

通过在VBA中创建UDF,您可以避免从数据行中提取列数据。

为此,请在工作簿中创建VBA模块并放置此代码:

Function GETCOLUMNDATA(Cell As Range, ColumnNumber As Long, Delimeter As String) As String
    GETCOLUMNDATA = Split(Cell, Delimeter)(ColumnNumber - 1)
End Function

然后您可以轻松提取数据,如下所示:

公式显示在公式栏中。

enter image description here

然后,根据您想要的格式,只需相应地加入它们。

enter image description here

注意:要将换行符放入单元格,请按Alt + Enter

答案 1 :(得分:1)

您可以使用相对简单的用户定义函数来执行此操作。

Option Explicit
Function CombineCells(R1 As Range, R2 As Range, Optional Sep As String = "#")
    Dim V1 As Variant, V2 As Variant
    Dim I As Long

V1 = Split(R1, Sep)
V2 = Split(R2, Sep)

'Check that same number of items in each
If UBound(V1) <> UBound(V2) Then
    MsgBox Prompt:="Data Error" & vbLf & "Item Count different in the Two Cells", Title:="Input Error"
End If

For I = 0 To UBound(V1)
    V1(I) = V1(I) & " - " & V2(I)
Next I

CombineCells = Join(V1, vbLf)

End Function

要输入此用户定义函数(UDF),alt-F11将打开Visual Basic编辑器。 确保在Project Explorer窗口中突出显示您的项目。 然后,从顶部菜单中选择Insert/Module和 将下面的代码粘贴到打开的窗口中。

要使用此用户定义函数(UDF),请输入类似

的公式
=CombineCells(A2,B2)

在某个单元格中。