【问题标题】:INDEX-MATCH and SUMPRODUCTINDEX-MATCH 和 SUMPRODUCT
【发布时间】:2017-11-15 18:24:37
【问题描述】:

我有一个从 Active Directory 生成的用户列表和与他们关联的安全组。它看起来像这样:

Username  Security Group
Chris     Group A
Chris     Group B
Chris     Group C
Dave      Group D
Dave      Group A
Dave      Group E

我有另一个用户名列表,我需要交叉引用以确定用户是否属于一个或多个特定安全组。安全组列表是动态的,并且会根据其他一些标准而变化,所以我只想在我的检查中引用一个命名范围。

我现在使用的等式如下所示:

=IF(INDEX('Users in Security Groups'!C:C, MATCH('Cross-Reference'!A2, 'Users in Security Groups'!B:B, 0))=Rng_SecGrp, "YES", "NO")

因为 INDEX-MATCH 在第一个值上停止,所以我知道用户名实际上属于我关心的这些安全组,所以我得到“NO”。我想答案在于数组公式和/或 SUMPRODUCT,但两者都超出了我的舒适范围,到目前为止我还没有确定正确的公式。

感谢任何帮助!谢谢!

【问题讨论】:

  • 我认为您不能针对条件范围使用 COUNTIFS 吗?我试过这个:=IF(COUNTIFS('安全组中的用户'!B:B,A2,'安全组中的用户'!C:C,Rng_SecGrp),“是”,“否”)。目前我可以通过对范围标准执行 {"1", "2", "3"} 来完成这项工作,但这将是长期维持的痛苦。如果归根结底就是这样,那肯定比手动检查要好。

标签: excel excel-formula


【解决方案1】:

使用 COUNTIFS() 而不是 INDEX(,MATCH()):

=IF(SUM(COUNTIFS('Users in Security Groups'!C:C,Rng_SecGrp,'Users in Security Groups'!B:B,'Cross-Reference'!A2)),"YES","NO")

这可能需要使用 Ctrl-Shift-Enter 输入数组。

【讨论】:

  • 我认为您不能针对条件范围使用 COUNTIFS 吗?我试过这个:=IF(COUNTIFS('安全组中的用户'!B:B,A2,'安全组中的用户'!C:C,Rng_SecGrp),“是”,“否”)。目前我可以通过对范围标准执行 {"1", "2", "3"} 来完成这项工作,但这将是长期维持的痛苦。如果归根结底就是这样,那肯定比手动检查要好。
  • 抱歉,不知道这是一个单元格区域。你希望它是和OR 的情况,如果它匹配任何一个,则它是正确的,还是AND 的情况,它必须匹配所有这些?
  • 或。我只关心它们是否匹配至少一个,而不关心它是哪个组。
  • 完美!和!不是 SUMPRODUCT。我知道我在球场上。非常感谢!
猜你喜欢
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 1970-01-01
  • 2019-07-20
相关资源
最近更新 更多