如何将信息从细胞中间拉出来?

时间:2014-07-10 14:25:07

标签: excel-formula excel-2010

我有几千行数据,我试图从他们自己的单元格中提取某些信息。

我有一列数据看起来像这样:

1@48x50x38 2@50x29x48 1@68x29x58 1@50x21x68

第一个数字是我可以使用LEFT公式轻松提取的数量。我还需要将其他数字集合放在自己的单元格中,但不知道如何从字符串中间拉出这些数字。

我希望它看起来像这样。

A B C D 1 48 50 38 2 50 29 48 1 68 29 58 1 50 21 68

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

MID函数可用于使用start和length值提取字符串的任意部分。 但是我怀疑你的问题是如何找到起始值和长度值。

FIND函数将提供此功能,因此您将使用它作为MID的参数

因此,要获得@符号之后的第一个数字(假设单元格为C8):

=MID(C8,FIND("@", C8)+1,FIND("x",C8)-FIND("@", C8)-1)

可以按如下方式提取另一个中间数字:

=MID(C8,FIND("x", C8)+1,FIND("x",C8,FIND("x",C8)+1)-FIND("x", C8)-1)

第一个和最后一个数字可以使用您提到的LEFTRIGHT函数。

最终号码:

=RIGHT(C8,LEN(C8)-FIND("x",C8,FIND("x",C8)+1))

答案 1 :(得分:1)

选择要解析的单元格并运行此小宏:

Sub convertt()
    For Each r In Selection
        V = r.Value
        If V <> "" Then
            ary = Split(V, "@")
            bry = Split(ary(1), "x")
            r.Value = ary(0)
            r.Offset(0, 1) = bry(0)
            r.Offset(0, 2) = bry(1)
            r.Offset(0, 3) = bry(2)
        End If
    Next r
End Sub

修改#1:

此版本不区分大小写:

Sub convertt()
    For Each r In Selection
        V = r.Value
        If V <> "" Then
            ary = Split(V, "@")
            bry = Split(LCase(ary(1)), "x")
            r.Value = ary(0)
            r.Offset(0, 1) = bry(0)
            r.Offset(0, 2) = bry(1)
            r.Offset(0, 3) = bry(2)
        End If
    Next r
End Sub