如何在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的单元格。