用于替换包含#或数字或分号的所有行的公式

时间:2015-09-29 10:38:35

标签: excel excel-formula excel-2013

所以例如我有以下

A柱

文本;#22

文本;#23

文本;#23

我想在该A列上编写一个公式来替换包含数字0-9或的所有行;或#

结果将是: A柱

文本

文本

文本

然而,我无法让它工作,因为我一直得到一个excel错误,有人会帮助我这个PLZ吗?

这是我发现并尝试过但却出错:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TableName[[#This Row],[A]],"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9",""),";#;#","; "),";#","")

2 个答案:

答案 0 :(得分:0)

您可以在vba中使用正则表达式,以便匹配和替换许多复杂模式。首先,我在visual basic editor下创建了一个模块并添加了这个cellRegex vba函数。其次,您需要从visual basic editor菜单Microsoft VBScript Regular Expressions 5.5添加对Tools>References的引用。

Function cellRegex(Myrange As Range, strPattern As String, Optional strReplace As String) As String
    Dim regEx As New RegExp
    Dim strInput As String

    If IsMissing(strReplace) Then
        strReplace = ""
    End If

    If strPattern <> "" Then
        strInput = Myrange.Value

        With regEx
            .Global = True
            .MultiLine = True
            .IgnoreCase = True
            .Pattern = strPattern
        End With

        If regEx.test(strInput) Then
            cellRegex = regEx.Replace(strInput, strReplace)
        Else
            cellRegex = "!No Match!"
        End If
    End If
End Function

毕竟,您可以从任何单元格调用您的函数。以下是您想要的公式。第一个参数是包含文本的单元格,第二个参数是要匹配的正则表达式模式,第三个参数是可选的,是替换字符串(在您的情况下是空字符串)

=cellRegex(A1;"[;#0-9]*";"")

答案 1 :(得分:0)

您可以使用正则表达式替换字符串。在JavaScript中,正则表达式非常简单:

['class' => 'yii\grid\CheckboxColumn'],

然后,使用formula = textSub(A1)。

示例:

http://dtab.io/sheets/560b75a008fbb3ec18e5b1bf