Excel – 两列(A)公司(B)团队成员。 需要确定哪些公司没有团队成员a,c和c

这使我的大脑融化。

这是我想要实现的模拟。

我从Excel中的数据库提取数据。 A栏是公司。 B栏是团队成员。

结构是这样的,例如,公司a由于它有四个小组成员,成员a,c,f和d,所以被四次显示。

目标:我想确定所有不包含团队成员a,b和c的公司。 理想情况下,这将使用一个公式,而不是VBA。

真的希望有人不介意花时间来帮忙。

下面的示例数据,我不知道如何将其粘贴为表,所以我已经将列值粘贴为两个单独的string。

+----------+----------+ | Column A | Column B | +----------+----------+ | a | a | | a | c | | a | f | | a | d | | b | g | | b | e | | b | a | | b | c | | c | r | | c | a | | c | b | | c | d | | c | e | | c | h | | c | t | | d | e | | d | f | | d | d | | d | s | | d | w | | d | q | | e | f | | e | a | | e | b | | e | r | | e | w | | f | u | | f | k | | f | n | | f | p | | f | l | | g | h | | g | a | | g | c | | g | e | | g | r | | g | g | | h | v | | h | c | | h | d | | h | a | | h | e | | h | r | | h | t | | h | g | | i | n | | i | g | | i | e | | i | y | | i | n | | j | r | | j | w | | j | j | | j | u | | k | y | | k | h | | k | k | | k | u | | k | b | | l | g | | l | j | | l | l | | l | u | +----------+----------+ 

非常感谢,

马特。

Column C一个简单的IF公式,

=IF(AND(B1<>"a",B1<>"b",B1<>"c"),A1,"")

并在整个范围内拖动它。 这将显示所有没有团队成员a,b和c的公司。 这可能包含重复的公司名称,您可能需要单独删除它。

干得好。 将该公式复制到包含公司和团队数据的每一行的C列中。

 =IF(INDIRECT("A"&ROW())<>INDIRECT("A"&ROW()-1),IF(SUM(COUNTIF(INDIRECT("B" & ROW() & ":B" & ROW() + COUNTIF($A:$A, INDIRECT("A"&ROW())) - 1), {"a","b","c"})) > 0, "", CONCATENATE("Company ", INDIRECT("A"&ROW()), " does not contain Team Members a, b, or c")), "") 

这是这个公式正在做什么的细目。

首先让我们了解一下INDIRECT的用法。 这是build立一个基于硬编码的“A”或“B”为列的正确单元格的引用,然后通过使用ROW()find当前行号。 这允许您将公式放置在行的任何位置,而不用担心必须重做列引用。

因此,例如,如果对第6行进行评估,则说明的公式是这样的:

  1. IF(INDIRECT("A"&ROW())<>INDIRECT("A"&ROW()-1)
    • 如果A6不等于A5,则继续,否则显示空白。
      • (这是我们如何知道我们是否正在评估一家新公司)
  2. COUNTIF($A:$A, INDIRECT("A"&ROW()))
    • 计算列A中等于A6的单元格数量。
  3. (COUNTIF(INDIRECT("B" & ROW() & ":B" & ROW() + ... - 1), {"a","b","c"})
    • 在A6到A9的范围内计算出现“a”,“b”或“c”的次数。
  4. IF(SUM( ... ) > 0, "", ...
    • 如果上述计数总和大于零,则显示空白,否则显示我们的成功消息。
  5. CONCATENATE("Company ", INDIRECT("A"&ROW()), " does not contain Teams a, b, or c")
    • 使用INDIRECTbuild立我们的成功信息来获取公司名称的参考。

输出看起来像这样。

在这里输入图像说明

而已!

这是一个数组公式,这将做AND,所有三个都必须存在忽略:

 =IFERROR(INDEX($A$2:$A$64,MATCH(1,(COUNTIFS($A$2:$A$64,$A$2:$A$64,$B$2:$B$64,"a")*COUNTIFS($A$2:$A$64,$A$2:$A$64,$B$2:$B$64,"b")*COUNTIFS($A$2:$A$64,$A$2:$A$64,$B$2:$B$64,"c")=0)*(COUNTIF($E$1:E1,$A$2:$A$64)=0),0)),"") 

把它放在E2中,按Ctrl-Shift-Enter而不是Enter来确认它是一个数组公式。 如果正确完成,Excel将在公式周围放置{}

然后拖/复制下来。

![在这里输入图片描述


如果你想或者,如果有任何存在忽略:

 =IFERROR(INDEX($A$2:$A$64,MATCH(1,(COUNTIFS($A$2:$A$64,$A$2:$A$64,$B$2:$B$64,"a")+COUNTIFS($A$2:$A$64,$A$2:$A$64,$B$2:$B$64,"b")+COUNTIFS($A$2:$A$64,$A$2:$A$64,$B$2:$B$64,"c")=0)*(COUNTIF($E$1:E1,$A$2:$A$64)=0),0)),"") 

把它放在E2中,按Ctrl-Shift-Enter而不是Enter来确认它是一个数组公式。 如果正确完成,Excel将在公式周围放置{}

在这里输入图像说明