在Excel中分割单元格
我想在最后一次出现的excel中拆分单元格(冒号)。 例如test:test1:test2
必须被分割成test2
即最后一次发生:
。
我怎样才能做到这一点 ?
假设你的最后一个string小于255个字符:
=TRIM(RIGHT(SUBSTITUTE(B2,":",REPT(" ",255)),255))
如果您的最后一个子string:
可能超过255个字符:
=RIGHT(B2,LEN(B2)-MATCH(2,1/(MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1)=":")))
两个公式与数组项( CTRL + SHIFT + ENTER )
如果我正确地理解了你,你可以像VBA一样使用WrdArray来保存所有的单词,我们使用UBound来获取数组中的最后一个单词。
Public Sub Spl() Dim WrdArray() As String Dim text_string As String text_string = Sheet1.Cells(2, 2) WrdArray() = Split(text_string, ":") x = WrdArray(UBound(WrdArray())) Sheet1.Cells(2, 3) = x End Sub
感谢simoco指出原来的function不起作用。
=RIGHT(B2; SEARCH(":";B2;1))
你也可以编写自己的UDF包装InstrRev
Public Function InstrReverse(cell As Range, char As String) As Integer InstrReverse = InstrRev(cell.Value, char) End Function
然后(假设你的目标string在A1中),这会给你左边的部分
=LEFT(A1,InstrReverse(A1,":")-1)
这会给你正确的部分
=RIGHT(A1,LEN(A1)-InstrReverse(A1,":"))
- 拥有Excel公式或VBA代码映射到列表的最佳方法是什么?
- MATLAB:将数据导入到具有100,000行和300列的Excel工作表中
- Excel VBA:插入单元格/行,而不移动选定的单元格
- 在SELECT * INTO XLSX('cities.xlsx',{headers:true})中dynamic改变文件名FROM?
- 长数据types不在Excel VBA中存储长期值
- 在Excel中使用CONCATENATE
- 如何解决无法投射“System.Data.DataView”types的对象来键入“System.Data.DataTable”错误
- 用JQuery读取Excel数据
- 如何给不同颜色的重复单元格组上色?