比较两个谷歌表或列中的数据是否匹配和不同

  • Share This
Michael Brown

不管是夏天敲门还是冬天入侵维斯特洛,我们仍然在谷歌表格中工作,必须将不同的表格碎片相互比较。 在这篇文章中,我将分享匹配你的数据的方法,并赠送关于迅速完成这一工作的提示。

    比较两列或两张表

    你可能有的任务之一是扫描两列或两张表的匹配或差异,并在表外某处识别它们。

    在谷歌表中比较两列的匹配和差异

    我将首先比较谷歌表格中的两个单元格。 这种方式可以让你逐行扫描整个列。

    例1.谷歌表--比较两个单元格

    对于这第一个例子,你将需要一个辅助列,以便将公式输入第一行的数据进行比较。

    =A2=C2

    如果单元格匹配,你会看到 "true",否则 "false"。 要检查一列中的所有单元格,将公式向下复制到其他行。

    提示:要比较不同文件的列,你需要使用IMPORTRANGE函数。

    =A2=IMPORTRANGE("spreadsheet_url", "Sheet1! A2")

    例2.谷歌表格--比较两个列表的匹配和差异

    • 一个更整洁的解决方案是使用IF函数。 你将能够设置以下的确切状态 相同和不同的细胞 :

      =IF(A2=C2,"Match","Differ")

      提示:如果你的数据是在不同的情况下写的,你想把这样的词看作是不同的,这里有一个公式给你。

      =IF(EXACT(A2,C2), "匹配", "不同")

      其中EXACT考虑的是案例,寻找的是完全相同的。

    • 为了仅识别具有以下特征的行 重复的细胞 ,使用这个公式。

      =IF(A2=C2,"Match","")

    • 要只标记有以下内容的行 独特的记录 在两列的单元格之间,采取这种方式。

      =IF(A2=C2,"","Differ")

    例3.在谷歌表格中比较两列

    • 有一个方法可以避免在每一行复制公式。 你可以在你的帮助列的第一个单元格中伪造一个数组IF公式。

    =ArrayFormula(IF(A2:A=C2:C,"", "差异"))

    这个IF将A列的每个单元格与C列的同一行配对。 记录是不同的 这个数组公式的好处是,它能一次性自动标记每一行。

  • 如果你想用以下方式命名这些行 相同的细胞 , 填充公式的第二个参数而不是第三个参数。
  • =ArrayFormula(IF(A2:A=C2:C, "Match","))

    例4.比较两个谷歌表的差异

    很多时候,你需要比较谷歌表格中属于一个巨大表格的两列,或者它们可以是完全不同的表格,如报告、价格表、每月的工作班次等。 那么,我相信,你不可能创建一个辅助列,否则会相当难以管理。

    如果这听起来很熟悉,不要担心,你仍然可以在另一张纸上标出差异。

    这里有两个包含产品及其价格的表格,我想在这些表格之间找到所有内容不同的单元格。

    首先创建一个新的工作表,在A1中输入下一个公式。

    =IF(Sheet1! A1Sheet2! A1,Sheet1! A1&"

    注意:你必须将公式复制到等于最大表格大小的范围内。

    结果,你将只看到那些内容不同的单元格。 该公式还将从两个表中提取记录,并用你在公式中输入的一个字符将它们分开。

    提示:如果要比较的工作表是在不同的文件中,同样,只需加入IMPORTRANGE功能。

    =IF(Sheet1! A1IMPORTRANGE("2nd_spreadsheet_url", "Sheet1!A1"),Sheet1!A1&"

    用于谷歌表的工具,用于比较两列和表的情况

    当然,上述每个例子都可以用来比较一个或两个表的两列,甚至是匹配表。 然而,有一个我们为这个任务创建的工具,将使你受益匪浅。

    它将在3个步骤中比较两个谷歌表和列中的重复或唯一的记录。 让它用状态列(顺便说一下,可以过滤)或颜色标记找到的记录,复制或移动它们到另一个位置,甚至清除单元格和删除整个有重复的行什么。

    我使用附加组件从Sheet1中找到Sheet2中不存在的行,其依据是 水果 MSRP 列。

    然后我把我的设置保存到一个场景中。 现在只要我的表中的记录发生变化,我就可以快速地运行它们,而不需要再次经历所有的步骤。 我只需要从Google Sheets菜单中启动该场景。

    为了让你更方便,我们在其帮助页面和这个视频中描述了该工具的所有选项。

    欢迎你自己尝试,并注意到它为你节省了多少时间。)

    比较两个谷歌表格中的数据并获取丢失的记录

    比较两个谷歌表的差异和重复是成功的一半,但如何处理缺失的数据呢? 对此也有特殊的函数,例如VLOOKUP。 让我们看看你能做什么。

    查找缺失的数据

    例子1

    想象一下,你有两个产品列表(在我的例子中是A列和C列,但它们可以简单地放在不同的工作表上)。 你需要找到那些出现在第一个列表中但没有出现在第二个列表中的产品。 这个公式可以做到这一点。

    =iserror(vlookup(a2,$c:$c,1,0))

    这个公式是如何运作的。

    • VLOOKUP在第二个列表中搜索A2中的产品。 如果它在那里,函数就会返回产品名称。 否则,你会得到一个#N/A错误,意思是在C列中没有找到该值。
    • ISERROR检查VLOOKUP返回的内容,如果是值则显示为 "true",如果是错误则显示为 "false"。

    因此,带有FALSE的单元格就是你要找的。 将公式复制到其他单元格,以检查第一个列表中的每个产品。

    注意:如果你的列在不同的工作表中,你的公式将引用其中一个。

    =ISERROR(VLOOKUP(A2,Sheet2!$C:$C,1,0))

    提示:要用一个单元格的公式,它应该是一个数组公式。 这样的公式会自动将结果填入所有单元格。

    =ArrayFormula(ISERROR(VLOOKUP(A2:A10,$C:$C,1,0))

    例2

    另一个聪明的方法是计算C列中A2的产品的所有出现次数。

    =IF(COUNTIF($C:$C, $A2)=0, "未找到", "")

    如果完全没有可计算的内容,IF函数会在单元格中标记为 未找到 其他单元格将保持空白。

    例3

    在有VLOOKUP的地方,就有MATCH。 你知道的,对吧? ;) 下面是匹配产品的公式,而不是计数。

    =IF(ISERROR(MATCH($A2,$C:$C,0)), "未找到",")

    提示:如果第二列的范围保持不变,请随意指定其确切范围。

    =IF(ISERROR(MATCH($A2,$C2:$C28,0)), "未找到",")

    拉出匹配的数据

    例1

    你的任务可能有点复杂:你可能需要为两个表的共同记录提取所有缺失的信息,例如,更新价格。 如果是这样,你需要用INDEX包住MATCH。

    =index($e:$e,match($a2,$d:$d,0))

    该公式将A列的水果与D列的水果进行比较,对于发现的一切,它将价格从E列拉到B列。

    例2

    你可能已经猜到了,另一个例子是使用我们前段时间介绍的谷歌表VLOOKUP功能。

    然而,还有一些其他的工具。 我们在博客中也都介绍了这些工具。

    1. 这些将用于基本的工作:查找、匹配和更新记录。
    2. 这些将不仅仅是更新单元格,而是添加相关的列& 非匹配的行。

    使用附加组件合并工作表

    如果你厌倦了公式,你可以使用我们的合并表插件来快速匹配和合并两个谷歌表。 除了它的基本目的是提取缺失的数据外,它还可以更新现有的值,甚至增加不匹配的行。 你可以用颜色或可以过滤的状态列来查看所有的变化。

    另外,一定要看看这个关于合并表附加组件的视频。

    用条件格式化来比较两个谷歌表格中的数据

    还有一种谷歌提供的标准方法来比较你的数据--通过条件格式化给匹配和/或差异着色。 这种方法使你要找的所有记录立即脱颖而出。 你在这里的工作是用公式创建一个规则,并将其应用于正确的数据范围。

    突出显示两个工作表或列中的重复内容

    让我们比较一下谷歌表格中两列的匹配情况,只给A列中与C列中同一行的单元格相匹配的单元格上色。

    1. 选择要着色的记录范围(对我来说是A2:A10)。
    2. 转到 格式化> 条件性格式化 在电子表格菜单中。
    3. 给规则输入一个简单的公式。

      =A2=C2

    4. 挑选颜色来突出单元格。

    提示:如果你的列的大小不断变化,你想让规则考虑所有的新条目,请将它应用于整个列(A2:A,假设要比较的数据从A2开始),并像这样修改公式。

    =and(a2=c2,isblank(a2)=false)

    这将处理整个列,并忽略空单元格。

    注意:要比较两个不同工作表的数据,你必须对公式进行其他调整。 你看,谷歌表的条件格式化不支持跨表引用。 但是,你可以间接地访问其他工作表。

    =A2=INDIRECT("Sheet2! C2:C")

    在这种情况下,请指定应用该规则的范围 - A2:A10。

    比较两个谷歌表和列的差异

    要突出显示与另一列中同一行的单元格不匹配的记录,操作方法与上面相同。 你选择范围并创建一个条件格式化规则。 然而,这里的公式不同。

    =A2C2

    再次,修改公式,使规则成为动态的(让它考虑这些列中所有新增加的值)。

    =and(a2=c2,isblank(a2)=false)

    如果要比较的列在那里,就使用间接引用到另一个工作表。

    =A2INDIRECT("Sheet1!C2:C")

    注意,别忘了指定应用规则的范围 - A2:A10。

    比较两个列表并突出显示两个列表中的记录

    当然,你的列中的相同记录更可能是分散的。 一列中A2的值不一定会出现在另一列的第二行。 事实上,它可能出现得更晚。 显然,这需要另一种方法来搜索项目。

    例子1.比较Google表格中的两列,并突出显示差异(独占)。

    为了突出每个列表中的唯一值,你必须为每一列创建两个条件格式化规则。

    颜色栏A。 =counttif($c$2:$c$9,$a2)=0

    颜色栏C。 =counttif($a$2:$a$10,$c2)=0

    这是我得到的独角兽。

    例2.在谷歌表格中查找并突出显示两列的重复内容

    在对上一个例子中的两个公式稍作修改后,你可以给常见的数值涂上颜色。 只要让公式计算所有大于0的数值即可。

    仅在A列之间进行颜色重复。 =COUNTIF($C$2:$C$9,$A2)>0

    仅在C列之间进行颜色复制。 =COUNTIF($A$2:$A$10,$C2)>0

    提示:在本教程中找到更多的公式例子来突出显示谷歌表的重复内容。

    匹配列和突出显示记录的快速方法

    条件格式化有时很棘手:你可能不小心在同一个单元格上创建了几个规则,或者在有规则的单元格上手动应用颜色。 另外,你必须留意所有的单元格:你通过规则突出显示的单元格和你在规则本身中使用的单元格。 如果你没有准备,不知道从哪里找问题,所有这些都可能让你非常困惑。

    幸运的是,我们的 "比较列或表 "足够直观,可以帮助你匹配一个表中的两列,一个表中的两个不同的表,甚至两个独立的表,并突出那些可能潜入你的数据中的唯一或重复的数据。

    下面是我如何在两个表之间突出显示重复的内容,基于 水果 MSRP 使用该工具的列。

    我还可以把这些设置保存到一个可重复使用的场景中。 如果记录更新了,我只需点击一下就可以调用这个场景,插件就会立即开始处理所有的数据。 因此,我可以避免在插件步骤中反复调整所有这些设置。 你会在上面的例子和本教程中看到场景是如何工作的。

    提示:你看过比较列或表插件的演示视频吗? 看看吧。

    所有这些方法现在都在你的掌握之中--用它们进行实验,修改并应用于你的数据。 如果这些建议对你的特定任务都没有帮助,欢迎在下面的评论中讨论你的情况。

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.