在 Sheet2 上工作,我可以使用以下公式在 Sheet1 的 B 列中查找与 Sheet1 的 C 列相对应的第“Sheet2.B1”个匹配项:
{=INDEX($Sheet1.$B$1:$B$9,SMALL(IF($Sheet1.$C$1:$C$9=$A2,ROW($Sheet1.$C$1:$C$9)-ROW($Sheet1.$C$1)+1),B$1))}
我想根据 Sheet1 中 A 列的相应值从查找中排除行。例如,IF $Sheet1.$A$1:$A$9=0 THEN *exclude from row array*
。我可以使用以下方法实现此目的数据 > 更多过滤器 > 标准过滤器...,将筛选后的行复制到新工作表,并在其上使用上述公式。但是,我希望在不重复任何数据的情况下进行管理。
提前致谢。
编辑:例如,我想在 Sheet2_1 中获得结果,而不必过滤并将 Sheet1 中的数据复制到 Sheet1_1。
答案1
尝试在 Sheet2.B2 上使用以下公式:
{=IFERROR(INDEX($Sheet1.$B$1:$B$9,IF(INDIRECT("$Sheet1.A" & SMALL(IF($Sheet1.$C$1:$C$9=$A2,ROW($Sheet1.$C$1:$C$9)-ROW($Sheet1.$C$1)+1),B$1)) =1, SMALL(IF($Sheet1.$C$1:$C$9=$A2,ROW($Sheet1.$C$1:$C$9)-ROW($Sheet1.$C$1)+1),B$1) ,"")),"")}
检查 Sheet1 的 A 列中的行是 0 还是 1。如果是 0,则返回一个空字符串。如果是 1,则返回 Sheet1 的 B 列中单元格的值。然后根据索引,返回行值,如果出现与将 0 设置为空字符串相关的错误,则返回一个空字符串。
请注意,这是一个数组公式。对 Sheet2_1 使用相同的逻辑。