仅当第 1 列中的值包含第 2 列中的特定单词时,才从具有 2 列的范围中提取值
Extract values from a range with 2 columns only if the value in column 1 contains a specific word in the column 2
我需要从不包含某个 activity(项目)的列表中提取每个人。听起来很简单,但我无法完全理解它。
请查看 Sheet 2 上的示例:
https://docs.google.com/spreadsheets/d/1qjbjXFCYj1qXrVVGNnhOj11asxT_o1xHWXerRqAl1UQ/edit#gid=2105763617
这是逻辑。
首先,我试图查看个体是否只出现一次,以及 Activity 是否不是 "Project"
=IF(A2<>"",IF(and(COUNTIF(A:A,A2)=1,B2<>"Project"),0,1),"")
那我就提取满足这个条件的名字:
=query(ARRAYFORMULA(iF(I2:I=0,A2:A,"")), "where Col1 <>'' ")
这是有效的,除了同一个人可能有多个作业不包含 activity "Project",我的公式没有考虑到它也不是简单的动态数组公式。
=UNIQUE(FILTER(A2:A, B2:B<>"Project"))
=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"))&"$"))))
虽然@player0 的回答解决了这个问题,但它在 sheet 的行数超过 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))))
你也可以试试这个:
{=IFERROR(INDEX($A:A,MATCH(0,IF($C<>$B:$B,COUNTIF($F:$F1,$A:$A), ""), 0)),"")}
N.B.
- Cell
C1
具有条件 Project,使用单元格引用生成公式
动态而非硬编码。
- 在单元格 F2 中输入此公式,使用 Ctrl+Shift+Enter 完成,
并向下填充。
我需要从不包含某个 activity(项目)的列表中提取每个人。听起来很简单,但我无法完全理解它。
请查看 Sheet 2 上的示例: https://docs.google.com/spreadsheets/d/1qjbjXFCYj1qXrVVGNnhOj11asxT_o1xHWXerRqAl1UQ/edit#gid=2105763617
这是逻辑。 首先,我试图查看个体是否只出现一次,以及 Activity 是否不是 "Project"
=IF(A2<>"",IF(and(COUNTIF(A:A,A2)=1,B2<>"Project"),0,1),"")
那我就提取满足这个条件的名字:
=query(ARRAYFORMULA(iF(I2:I=0,A2:A,"")), "where Col1 <>'' ")
这是有效的,除了同一个人可能有多个作业不包含 activity "Project",我的公式没有考虑到它也不是简单的动态数组公式。
=UNIQUE(FILTER(A2:A, B2:B<>"Project"))
=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"))&"$"))))
虽然@player0 的回答解决了这个问题,但它在 sheet 的行数超过 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))))
你也可以试试这个:
{=IFERROR(INDEX($A:A,MATCH(0,IF($C<>$B:$B,COUNTIF($F:$F1,$A:$A), ""), 0)),"")}
N.B.
- Cell
C1
具有条件 Project,使用单元格引用生成公式 动态而非硬编码。 - 在单元格 F2 中输入此公式,使用 Ctrl+Shift+Enter 完成, 并向下填充。