2016-09-06 179 views
1

我在Excel中有两个文本单元格,如下所示,其中包含字符串(A1和A2),我试图从A1单元格字符串中删除A2单元格字符并将结果存储在A3中。如何从Excel中减去另一个文本单元格?

enter image description here

我一直在使用像搜索一些功能(),TEXT()试过了,RIGHT()..但不可能达到我需要的结果。

我可以很容易地使用任何编程语言(Python,C等)来做到这一点 - 只需要一个循环和几个字符串函数。但无法弄清楚如何使用Excel Formula获得相同的结果。

任何想法我们怎么能得到这个?

+0

这是区分大小写? (你拿出'我',但离开'我')。您可能需要VBA,是否需要*使用公式?你可以做一个超级错综复杂的替代品,你可以用一个替代品包裹替代品...... – BruceWayne

+0

这可能不是真的,但从我所知道的你不能通过一个简单的内置函数来完成。您需要使用vba宏 – Luke

+0

可能会编写一个Excel VBA函数。 – RBarryYoung

回答

5

这样做通过UDF将是非常直的前锋。基本上只需循环遍历ins字符,并使用replace()将字符替换为空;

Function textSubtract(startString As String, subtractString As String) As String 
    'Function to subtract characters in one string from another string 

    'Loop through every character in subtractString 
    Dim charCounter As Integer 
    For charCounter = 1 To Len(subtractString) 

     'Replace out the character in startString 
     startString = Replace(startString, Mid(subtractString, charCounter, 1), "") 

    Next charCounter 

    'Return 
    textSubtract = startString 

End Function 

然后,你可以这样调用它:

enter image description here

+0

为什么不添加一个可选的布尔参数来打开和关闭大小写敏感?(默认为按照OP的示例) – Jeeped

+1

这是VBA ...天空是极限,我只是写给规范。 – JNevill

4

B2输入:

=MID($A$2,COLUMN()-1,1) 

和跨复制(这隔离字符)。在B3输入:

=SUBSTITUTE($A$1,B2,"") 

C3输入:

=SUBSTITUTE(B3,C2,"") 

和整个复制(这消除每个字符)

enter image description here

+0

我认为没有办法,通过公式,在一个单元格中做所有的事情?既然你不知何故必须遍历'A2',是吗? – BruceWayne

+0

除非你想将它嵌入到10个地方,如果你知道a2中字符的限制是10 – happymacarts

+0

@BruceWayne这可能可以用一个*** Array Formula ***来完成,但这超出了我的能力。 –

相关问题