用函数过滤字符

子string已经出现在线上的最简单的方法是什么?

有可能这样做与function(意味着没有VBA)?

更多信息 :

如果我有像这样的细胞

    * A * * B * * C * * D * * E * * F *
   |  DATA | 结果|
 1 |  A |  B |  C |  |  E |  F |  d
 2 |  C |  |  |  |  E |  F |  ABD

有没有一个函数可以给出这个结果:

fx("ABCEF", "ABCDEF")返回D
fx("CF", "ABCDEF")返回ABDE

我怀疑simplest way (或至less不是最短的),但肯定可能没有VBA:

  = IF(ISERROR(MATCH( “A”,A2:F2,0)), “A”, “”)&IF(ISERROR(MATCH( “B”,A2:F2,0)), “B”, “” )IF(ISERROR(MATCH( “C”,A2:F2,0)), “C”, “”)&IF(ISERROR(MATCH( “d”,A2:F2,0)), “d”, “” )IF(ISERROR(MATCH( “E”,A2:F2,0)), “E”, “”)&IF(ISERROR(MATCH( “F”,A2:F2,0)), “F”, “” ) 

试试这个小UDF

 Public Function WhatsLeft(LittleString As String, BigString As String) As String WhatsLeft = BigString For i = 1 To Len(LittleString) c = Mid(LittleString, i, 1) WhatsLeft = Replace(WhatsLeft, c, "") Next i End Function 

这可能是一个复杂的公式作为一个数组可能会做到这一点 – 但在编码网站,我会保持简单,并运行一个VBA的UDF

 Sub Test() Debug.Print Updated("ABCEF", "ABCDEF") Debug.Print Updated("CF", "ABCDEF") End Sub 

function

 Function Updated(strRep As String, strIn As String) Dim objRegex As Object Set objRegex = CreateObject("vbscript.regexp") With objRegex .Pattern = "[" & strRep & "]" .Global = True Updated = .Replace(strIn, vbNullString) End With End Function