Google sheets 仅当第1列中的值包含第2列中的特定单词时,才从包含2列的范围中提取值

Google sheets 仅当第1列中的值包含第2列中的特定单词时,才从包含2列的范围中提取值,google-sheets,filter,google-sheets-formula,array-formulas,google-sheets-query,Google Sheets,Filter,Google Sheets Formula,Array Formulas,Google Sheets Query,我需要从不包含特定活动(项目)的列表中提取每个人。听起来很简单,但我还没讲完 请检查第2页上的示例: 逻辑是这样的。 首先,我试图了解个人是否只发生一次,以及该活动是否不是“项目” =IF(A2“”,IF(and(COUNTIF(A:A,A2)=1,B2“项目”),0,1),“”) 然后我只提取满足此条件的名称: =query(ARRAYFORMULA(iF(I2:I=0,A2:A,"")), "where Col1 <>'' ") =query(数组公式(iF(I2:I=0

我需要从不包含特定活动(项目)的列表中提取每个人。听起来很简单,但我还没讲完

请检查第2页上的示例:

逻辑是这样的。 首先,我试图了解个人是否只发生一次,以及该活动是否不是“项目”

=IF(A2“”,IF(and(COUNTIF(A:A,A2)=1,B2“项目”),0,1),“”)
然后我只提取满足此条件的名称:

=query(ARRAYFORMULA(iF(I2:I=0,A2:A,"")), "where Col1 <>'' ")
=query(数组公式(iF(I2:I=0,A2:A,”),“where Col1”)
这是可行的,但同一个人可能有多个工作分配,其中可能不包含活动“项目”,我的公式无法解释该活动,也不是简单的动态数组公式。

=UNIQUE(过滤器(A2:a,B2:B“项目”))
=UNIQUE(FILTER(A2:A, B2:B<>"Project"))


=UNIQUE(查询(A2:B,“选择A,其中B‘项目’”,0))


=唯一(过滤器(A2:A,B2:B“项目”,
不是(REGEXMATCH(A2:A,“^”和TEXTJOIN($|^”,1,过滤器(A:A,B:B=“Project”)&“$”)

虽然@player0的答案解决了这个问题,但它在一张超过1000行的工作表上获得了巨大的性能打击。 相反,我提取了所有包含“Project”的名称,然后提取了所有不包含“Project”的名称,然后从第一个数组中减去所有名称,以消除两者中的名称

=UNIQUE(FILTER(UNIQUE(FILTER(A2:A, B2:B<>"Project")), ISNA(MATCH(UNIQUE(FILTER(A2:A, B2:B<>"Project")), UNIQUE(FILTER(A2:A, B2:B="Project")),0))))
=唯一(过滤器(唯一(过滤器(A2:A,B2:B“项目”)),ISNA(匹配(唯一(过滤器(A2:A,B2:B“项目”)),唯一(过滤器(A2:A,B2:B=“项目”)),0)))

我喜欢第一个,但不确定为什么要包括第三个,因为它没有返回
George
?@TerryW第三个用于只需要唯一名称的情况,而这些名称从来没有返回过Project@player0谢谢,这确实有效,但我正在尝试优化它。当我介绍这个公式时,电子表格的性能受到了巨大的冲击
=UNIQUE(QUERY(A2:B, "select A where B <>'Project'", 0))
=UNIQUE(FILTER(A2:A, B2:B<>"Project", 
 NOT(REGEXMATCH(A2:A, "^"&TEXTJOIN("$|^", 1, FILTER(A:A, B:B="Project"))&"$"))))
=UNIQUE(FILTER(UNIQUE(FILTER(A2:A, B2:B<>"Project")), ISNA(MATCH(UNIQUE(FILTER(A2:A, B2:B<>"Project")), UNIQUE(FILTER(A2:A, B2:B="Project")),0))))