在Excel中截断字符串 - 是否有一个函数来删除分隔符后的字符串的最后部分

时间:2009-04-03 12:44:09

标签: excel string

Excel中是否有智能宏(2000以上)删除字符串的最后一部分,如果它有某个分隔符?

如果没有分隔符,则应保留字符串

例如,对于“。”

 abcd.1          =>  abcd
 abcd            =>  abcd

我想我可以使用Instr和Mid等组合来写东西,但我很想知道是否有更聪明的速记,比如“Strip('abcd.1';'。')”或者如此。

5 个答案:

答案 0 :(得分:7)

我不相信有任何功能会为你做这件事。

您可以使用以下内容:


=LEFT(A1,IF(ISERROR(SEARCH(".",A1)),LEN(A1),SEARCH(".",A1) - 1))

这将删除分隔符第一个实例后的所有字符,如果要从最后一个实例中删除,则可能需要编写自己的函数来对反向字符串进行搜索。

可在以下位置找到可用功能的完整列表:

http://www.techonthenet.com/excel/formulas/index.php

答案 1 :(得分:2)

您也可以为此创建自己的用户定义函数(UDF)。

Function Strip(ByVal oCell As Range, ByVal sSeperator As String) As String

    Dim iPos As Integer
    Dim sValue As String

    sValue = oCell.Value
    iPos = InStr(sValue, sSeperator)

    If (iPos <= 0) Then
        Strip = sValue
    Else
        Strip = Left(sValue, iPos - 1)
    End If

End Function

然后你可以使用

在公式栏中调用它
  

=剥离(A1,“。”)

答案 2 :(得分:2)

您可以交替使用数据列,单击“文本到列选项”,选择“分隔”,然后点击下一步并选择您选择的符号来分割数据(在您的情况下,'。')。您的数据现在应分为两列。删除第二列:)

答案 3 :(得分:0)

'在函数中使用SPLIT

公共函数extractName(parmField As String,可选parmSplitChar As String =“。”)As String

Dim vSplit As Variant

vSplit = Split(parmField, parmSplitChar)
extractName = vSplit(0)

结束功能

答案 4 :(得分:0)

这适用于德语版的Excel。

=LINKS(A1;WENN(ISTFEHLER(SUCHEN(".";A1));LÄNGE(A1);SUCHEN(".";A1) - 1))