如何在Excel中打破string中的子string?

原来的列是这样的:

0.45::rafas::4.0::0.0::0.9 0.35::rasaf::4.0::110.0::1.0 

我想在Excel中将string分解为以下(:: as分隔符)

  col1 col2 col3 col4 col5 0.45::rafas::4.0::0.0::0.9 0.45 rafas 4.0 0.0 0.9 0.35::rasaf::4.0::110.0::1.0 0.35 rasaf 4.0 110 1.0 

请帮忙。

本页面解释了如何使用“文本到列”function。

复制您的方便:

用数据突出显示所有单元格。

在列中select最上面的单元格,按A1按住CTRL + SHIFT,然后按向下箭头。 好的,一旦我们做完了,进入“数据”菜单并select“文本到列”。 在“文本到列”窗口中,select“分隔”,然后点击“下一步”。 在下面的窗口中,select“其他”分隔符的types,并使用减号/连字符 – 命中完成。

现在你会有两列,从你的例子中,第一列将包含数据,如“动物”,另一列将包含数据“旭日之屋”。 (注意“House”前的SPACE)

为了摆脱这个空间,我们将使用TRIMfunction。

在单元格C1(或歌曲标题右侧的列)中键入此公式。

TRIM =(B1)

然后双击excel光标上的那个小黑框将整个公式复制下来。 文本string的开头或结尾的任何空格都将被删除。

如果你想用forumlae而不是“text to columns”函数来做,你可以使用:

假设A1中的string

 in B1: =FIND("::",$A1) in C1: =FIND("::",$A1,B1+1) 

然后将D1复制到D1:E1

 in F1: =MID($A1,1,B1-1) in G1: =MID($A1,B1+2,C1-B1-2) 

然后在H1上复制G1:I1最后

 in J1: =MID($A1,E1+2,LEN($A1)-E1-1) 

分割的结果将在F1:J1中。 你总是可以隐藏列B:E,因为它们只是分裂的内部。 这可以根据需要在行上完成,如果A1中的值更新,则所有其他值将被更改。 但是,它的列数是固定的,如果需要的话可以很容易地扩展。

Excel(和OpenOffice)具有将文本分成列的function。 突出显示符合此模式的所有列,然后转到数据菜单,然后select“文本到列”。 使用分隔符并将其指定为“:”,而将连续的分隔符视为一个。

这里是一个非常简单的方法来从Excel中的文本string左侧提取第五个字符:

假设stringABCDEFGHIJ被存储在一个Excel电子表格的单元格A1,然后下面的公式

= RIGHT(LEFT(A1,5),1)

从string左边产生第五个字符,即“E”。

如果你想要一个简单的函数,你可以使用下面的VBA代码。

 Function SplitTextToNum(rngInput As Range, sepString As String) Dim CallerRows As Long, CallerCols As Long, DimLimit As Long Dim outvar As Variant outvar = Split(rngInput.Value, sepString, -1, vbBinaryCompare) If Application.Caller.Rows.Count > 1 Then SplitTextToNum = Application.Transpose(outvar) Else SplitTextToNum = outvar End If End Function 

在input公式后,可以使用Ctrl + Shift + Enter键input一个单元格范围,这个公式是指你需要拆分string的单元格。