所以我试图找到/制作一个能在excel中找到我所有重复单词的程序。例如,在A1“人”中的A1“某人”等等,但我会有“某人”倍数或其他单词,我需要将这些信息压缩在一起。但我需要以我不喜欢的方式做到这一点。 t手动搜索以连接重复项。那么有没有办法找到重复的单词并将它们连接起来?
我也一直在寻找使用“FIND”来寻找它们,但它已经没有运气了。我也一直在使用“过滤器”,但我不知道如何在不手动操作的情况下压缩重复项。我也想知道在哪里可以找到“FIND,REPLACE等”等功能的代码?如果我能找到我可以改变“删除重复”的编码来改变它的话。但是,嘿,我真的不知道这是否真的有效。任何事都会有所帮助。
例如:
culomn1 - culomn2 -----culomn3
y ------ A -----(nothing)
z ------ B -----(nothing)
z ------ (nothing)-----I
x ------ (nothing)-----k
y ------ (nothing)-----j
x ------ C ------(nothing)
到这个
culomn1 - culomn2 -----culomn3
y------A------j
z------B------I
x------C------k
除了字母是单词。
答案 0 :(得分:1)
我不知道你是否可以用Excel中的公式来做这件事,除非你知道你在单元格中寻找什么词。您可以尝试使用UDF或正则表达式。
我的问题和回答链接可能会让你开始:
StackOverflow: formula to see if a surname is repeated within a cell
并且可能:
一旦您发布了包含数据的Excel工作表,我们就会看到我是否错了!
答案 1 :(得分:1)
您可以使用高级过滤器将第1列中的唯一值复制到新列。然后你将使用vlookup公式来完成剩下的工作。
假设:
在单元格F2中复制到G2然后根据需要向下复制:
=INDEX(INDEX($B$2:$C$7,0,COLUMNS($E2:E2)),MATCH(1,INDEX(($A$2:$A$7=$E2)*(INDEX($B$2:$C$7,0,COLUMNS($E2:E2))<>""),),0))
答案 2 :(得分:1)
Sheet1之前:
代码:
Sub Macro1()
With Sheet1
.Columns("A:A").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.Range("F1:F2"), CopyToRange:=.Range("K1"), Unique:=True
.Columns("B:B").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.Range("G1:G2"), CopyToRange:=.Range("L1"), Unique:=True
.Columns("C:C").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.Range("H1:H2"), CopyToRange:=.Range("M1"), Unique:=True
End With
End Sub
Sheet1 After:
确保使用字段名称。
答案 3 :(得分:1)
这将为您提供一个功能,可以找到针对特定字符串的第一个非空白单元格
Option Explicit
Function NonBlankLookup(SearchTxt As String, LookIn As Range, OffSetRows As Long) As Variant
Dim loc As Range
Dim FirstFound As Range
Set loc = LookIn.Find(what:=SearchTxt)
While Not (loc Is Nothing)
If Not IsEmpty(loc.Offset(0, OffSetRows)) Then
NonBlankLookup = loc.Offset(0, OffSetRows).Value
Exit Function
End If
If FirstFound Is Nothing Then
Set FirstFound = loc
ElseIf loc = FirstFound Then
NonBlankLookup = CVErr(2000)
Exit Function
End If
Set loc = LookIn.Find(what:=SearchTxt, after:=loc)
Wend
NonBlankLookup = CVErr(2000)
End Function
使用,将此代码插入到模块中,然后在excel电子表格中,您可以使用=NonBlankLookup(E1,$A$1:$A$6,1)
这样的公式来搜索 A1:A6 中的文字,并检查右侧1列。如果找不到与搜索字符串匹配的文本,或者找到了文本但指定列中没有数据,则返回 #NULL!。
这对vlookup也有一些优势,因为它允许负偏移,所以你可以在第2列中使用搜索文本,并使用-1作为偏移量,你可以从第1列返回数据
正如您所知,由于.find
的工作方式,当您指定范围时,它将从 2nd 单元格开始,然后向下,并搜索第一个你最后给它的细胞。
例如以我的 A1:A6 为例,它将搜索 A2,A3,A4,A5,A6 ,最后 A1