Google sheets 在带有随机数据的逗号分隔行中查找重复值

Google sheets 在带有随机数据的逗号分隔行中查找重复值,google-sheets,duplicates,Google Sheets,Duplicates,非常感谢您的帮助,因为我已经为此挣扎了一段时间,无法找到解决方案 我有一个Google Sheets文件,根据所附的屏幕截图,数据以逗号分隔,分为两列 两列的屏幕截图 屏幕截图中的文本: soon,son,so,on,no N/A kind,kid,din,ink,kin,in dink sing,sign,sin,gin,in,is gis

非常感谢您的帮助,因为我已经为此挣扎了一段时间,无法找到解决方案

我有一个Google Sheets文件,根据所附的屏幕截图,数据以逗号分隔,分为两列

两列的屏幕截图

屏幕截图中的文本:

soon,son,so,on,no                               N/A
kind,kid,din,ink,kin,in                         dink
sing,sign,sin,gin,in,is                         gis,ins,sig,gins
farm,arm,ram,far,mar,am                         arf
may,yam,am,my                                   N/A
tulip,lip,lit,pit,put,tip                       piu,pul,til,tui,tup,litu,ptui,puli,uplit
gift,it,if,fit,fig                              gif,git
hear,are,ear,hare,era,her                       hae,rah,rhea
dish,his,is,hi,hid                              dis,ids,sidh
trip,pit,rip,tip,it                             N/A
wife,few,if,we                                  fie
thaw,what,hat,at                                haw,taw,twa,wat,wha
red,deer,reed                                   ere,dee,ree,dere,dree,rede
as,save,vase,sea                                ave,sae,sev,vas,aves
from,for,form,of,or                             fro,mor,rom
won,now,on,own,no                               N/A
sport,port,spot,post,stop,sort,top,opt,pot,pro  tor,sotrot,ops,tors,tops,trop,pots,opts,rots,pros,prost,strop,ports
 
我希望在另一列中有一个公式来显示这两列中是否有重复的值


提前感谢您的帮助。。。已经好几个星期没有成功了哈哈

首先将数据放在Excel工作表的AB列中。然后运行以下简短的VBA宏:

Sub report()
    Dim rng As Range, r As Range, c As Collection, K As Long
    Set rng = Range("A1:B17")
    Set c = New Collection
    K = 1
    
    For Each r In rng
        arr = Split(r.Value, ",")
        For Each a In arr
            On Error Resume Next
                c.Add a, CStr(a)
                If Err.Number <> 0 Then
                    Err.Number = 0
                    Cells(K, "C").Value = a
                    K = K + 1
                End If
            On Error GoTo 0
        Next a
    Next r
    Range("C:C").RemoveDuplicates Columns:=1, Header:=xlNo
    Set c = Nothing
End Sub
子报告()
尺寸rng作为范围,r作为范围,c作为集合,K作为长度
设置rng=范围(“A1:B17”)
集合c=新集合
K=1
对于rng中的每个r
arr=拆分(r.值,“,”)
对于arr中的每个a
出错时继续下一步
c、 增加一项,集体安全技术审查(a)
如果错误号为0,则
错误号=0
单元格(K,“C”)。值=a
K=K+1
如果结束
错误转到0
下一个
下一个r
范围(“C:C”)。移除的重复列:=1,标题:=xlNo
设置c=无
端接头


如果您的Excel for Windows O365具有
UNIQUE
FILTERXML
功能,则重复项将显示在列C

如果你想把两列结合起来,就好像它们是一块数据一样,

然后尝试:

=UNIQUE(FILTERXML("<t><s>" & SUBSTITUTE(TEXTJOIN("</s><s>",TRUE,$A$1:$A$17,$B$1:$B$17),",","</s><s>") & "</s></t>","//s[.=following-sibling::*]"))
=UNIQUE(FILTERXML(“&SUBSTITUTE(TEXTJOIN(“,TRUE,$A$1:$A$17,$B$1:$B$17),”,“,”,”)&“//s[…=以下同级::*]”)

如果这不是您想要的,请澄清您的问题。

解决方案 我从您的问题中了解到的是:您想知道在两个不同列的单元格之间是否有以逗号分隔的单词匹配

对于这个解决方案,我已经使用了。下面的注释代码将在两列之间找到匹配的单词。此外,由于使用的函数是一个
onEdit()
触发器,它将自动检测这些列中的任何更改,并自动查找新的匹配项或不再存在的匹配项,并更新单元格
C1
的值:

函数onEdit(){
//获取当前工作表
var sheet=SpreadsheetApp.getActive().getActiveSheet();
//从我们的列中获取值。这将返回一个二维数组,该数组被展平为
//一维数组,然后将其转换为一个字符串,其元素在该字符串中被分隔
//通过逗号和空格删除(例如,使a与空格+a匹配)
var colA=sheet.getRange('A1:A2').getValues().flat().join().replace(/\s/g');
var colB=sheet.getRange('B1:B2').getValues().flat().join().replace(/\s/g');
//创建两个数组,其中每个元素都是由其原始数组中的逗号分隔的单词
//串
var ArrayA=colA.split(',');
var ArrayB=colB.split(',');
//在这两个数组中查找匹配项并返回这些匹配项
var matchingValues=ArrayA.filter(value=>ArrayB.includes(value));
//将C1的值设置为筛选器在两列之间匹配的单词
//联接用于显示匹配数组的所有匹配元素
sheet.getRange('C1').setValue(matchingValues.join());

}
您已经尝试了什么?感谢您的考虑和。好吧,我已经尝试了COUNTIF、COUNTIFS和和公式在不同的博客中的不同变体,等等。但到目前为止,似乎我唯一能做到的是,如果行完全相同,则返回TRUE或FALSE值。在我的例子中,行永远不会相同…我添加了屏幕截图中的文本。因为这个问题与“谷歌表单”无关,谢谢你,卢克。非常感谢!不确定这两列中的值是否重复。是否查看两列中每个单元格中的每个子字符串以查找重复项?就一个牢房?同一行的单元格?什么版本的Excel?考虑到您提供的数据,您的输出是什么。为什么标题中有谷歌表单,而标签中没有呢?谢谢Ron的帮助!我在早些时候的评论中提到,我正在谷歌表单上构建这个。。。不幸的是,这个公式不起作用,但它似乎正是我想要实现的@IulianOlaru我提供了这个,因为您最初没有将
googlesheets
作为标记包含在您的问题中。好吧,
工作表
没有与
FILTERXML
等效的功能,因此此解决方案不适用于您。是的,对不起,Ron,关于堆栈的第一个问题。。。我在标题和问题中写了谷歌表格。。。我不认为我也必须把它写成标签。诚恳的道歉。嘿,加里,这肯定行得通,但我正试图在谷歌表单上实现这一点……顺便说一句,我在苹果数字版的macOS上。。。我知道数字不能读VBA。。。抱歉,如果这是复杂的:-)有一个类似的脚本语言谷歌表,我会看看以后。非常感谢你加里。。。这可能是一个救命恩人!嘿,加里,你有办法解决这个问题吗?非常感谢。