excel中如何查找单元格内相同的字符,但是字符顺序不一样如:“明天 天明”两个字符一样如何把它查找出来

如题所述

亲,如下图。

打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧空白处点击右键,“插入”,“模块”。右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。

然后,在B1输入:=XTZF(A1)

 

Function XTZF(rng As Range) As String
Dim d, k
Set d = CreateObject("Scripting.Dictionary")
Dim i As Integer
For i = 1 To Len(rng)
    d(Mid(rng, i, 1)) = d(Mid(rng, i, 1)) + 1
Next
For Each k In d.keys
    If d(k) > 1 Then XTZF = XTZF & k
Next
Set d = Nothing
End Function

追问

按“Alt+F8”打开宏窗口 没有任何宏可以执行~~啊

追答

额……笔误!不需要按“Alt+F8”……
直接关闭VBA编辑窗口即可。然后,在B1输入:=XTZF(A1)

追问

可以了你这个是把A列内的重复的字符在B列内显示,能不能改成找A列B列内重复的
例如
明天,今天
后天,前天
昨天,天明 内找出:明天跟天明 谢谢

追答

可以。代码更改如下。

请在C1单元格输入:

=KEEPSTR(A1,B1)

 

Function KeepStr(R1 As String, R2 As String)
Dim i, j As Integer
Dim s As String
s = ""
For i = 1 To Len(R1)
    For j = 1 To Len(R2)
        If Mid(R1, i, 1) = Mid(R2, j, 1) And InStr(s, Mid(R1, i, 1)) = 0 Then s = s & Mid(R1, i, 1)
    Next
Next
KeepStr = s
End Function

追问

首先,感谢你的热心,然后还有个问题是:现在是A列与列找相同字符,能不能上下找呢?如:A1:大家好,A4:家大好,B2:好大家.........找出来~~

追答

没理解你的要求……
上下找也没法得出你的结果呀。按你的例子,下面上下找,左边一列相同的字符是“天”,右边一列相同的字符也是“天”。如果既上下又左右,是不是说在一块区域中?最好把你的实际情况截图上来,举几个例子说明规则。

明天,今天
后天,前天
昨天,天明

追问

如图找出全表内的黄色区域

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-22
在B1中输入或复制粘贴下列公式
=IF(ISNUMBER(FIND("明",A1)*FIND("天",A1)),"有","")
下拉填充追问

A1 指的是单元格范围吗?

追答

是的。

追问

如何把A列的字符 像现在这样统计出来

追答

假设B列为左侧的字符在C1中输入如下公式=SUMPRODUCT(LEN(A$1$5-LEN(SUBSTITUTE(A$1:A$5,B1,)))
下拉填充

假设B列为左侧的字符
在C1中输入如下公式=SUMPRODUCT(LEN(A$1:A$5)-LEN(SUBSTITUTE(A$1:A$5,B1,)))
下拉填充