【问题标题】:How to check for any matching cells in two columns for excel?如何检查两列中是否有任何匹配的单元格用于excel?
【发布时间】:2020-08-03 11:39:19
【问题描述】:

我有一个包含多张工作表的 excel 文件。第一张名为 =“ Main ”的工作表是我正在处理的工作表,名为 =“ Data ”的工作表包含后面的数据,我正在使用它构建一个对称矩阵。例如,两者都显示在图像中。

我想检查“主”表中的相交单元格在“数据”表的相应列中是否有任何匹配值,并找到 1(如果是)或 0(如果没有匹配的单元格值)。

例如,如果在“主”表中,我位于 E 列和第 4 行,即 E4,因此如果要在“数据”表中查找名为 E 列标题和第 4 行的列,并检查是否有的单元格具有匹配的内容。

示例数据链接:https://docs.google.com/spreadsheets/d/1W5Nj91lVUt0NAm_h6KkONucoy2sXMGjJ3z-Tl1K1QhY/edit?usp=sharing

【问题讨论】:

  • 所以你会在“数据”表B列的“主”表中搜索EI值?
  • 不,“数据”表包含数据列。它有一个对应于玩家姓名的标题,主表包含玩家姓名作为列和行,以查找他们是否一起玩过。因此,对于“主表”中的每个单元格,我必须检查“数据”表中的数据以检查它们是否有任何共同匹配(这是唯一的 ODI 编号)。如果他们有任何共同的匹配项,我在“主”表的该单元格中输入 1 否则为 0。
  • 听起来像 COUNTIFS 但没有数据示例,无法保证
  • 我已经添加了示例数据,您可以参考相关链接。
  • 很好,谢谢,但仍不清楚。因此,按照您的示例,“主工作表”中的单元格 E4 为空。列名是Krishnamachari Srikkanth。该值在工作表“数据”中不存在,所以返回 0?

标签: excel excel-formula vlookup


【解决方案1】:

我认为最简单的方法是使用命名范围。您可以使用播放器的名称命名数据表上的每一列(不带空格 - 正如我在您的文件中所做的那样)。

要计算任意两个玩家共有多少 ODI,您可以简单地将他们各自的范围(列)相乘,例如:

=SUMPRODUCT(indirect(substitute(A6," ",""))=TRANSPOSE(indirect(substitute(G1," ",""))))

间接函数解析为:

=SUMPRODUCT(ManinderSingh=TRANSPOSE(ChetanSharma))

并为您提供这两个一起玩的比赛总数:

可以在没有命名范围的情况下执行此操作,而是动态查找玩家名称,但这会产生一个非常混乱和复杂的公式(至少我尝试过的方式是这样)。设置命名范围可能会花费您几分钟的时间,但我认为这是一个更优雅的解决方案。

【讨论】:

  • 您好,Michal,谢谢您的回答。我已将完整数据添加到同一张表中,并在更改“数据”表中的行名后进行计算,如您所述。该公式适用于示例中的单元格(您提供了代码),但对于“数据”表中新添加的列,它给出了错误。错误(比如 G5 说):“函数 INDIRECT 参数 1 的值是“KapilDev”。它不是有效的单元格/范围参考“。但是 KapilDev 在我最近添加的“数据”表中。也许你可以把表格告诉我。
  • @VinayDalal - 请仔细阅读我的回复。对于每个玩家,您需要定义一个命名范围 - 转到数据和命名范围,看看我是如何为您发布的示例完成的。您需要为每列上的每个玩家创建一个命名范围。
  • 哦,知道了@Michal。非常感谢。不知道命名范围选项。
猜你喜欢
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多