给定excel中的一组值,如何在一列中找到它们?

给定excel中的一组值,如何在一列中找到它们?,excel,select,filter,subset,Excel,Select,Filter,Subset,给定子集a: selection 1 2 3 4 5 Excel表格的格式: col1 col2 and so on... 1 kuku 300 pupu 4 abcd 22 sfds 900 aqww 我想从工作表中选择“选择”内容,就像我们在SQL中可以做的那样: select * from excel_sheet where col1 == selection 如何在Excel中执行此操作?您可以尝试类似的操作,但必须将其

给定子集a:

selection
1
2
3
4
5
Excel表格的格式:

col1    col2   and so on...
1       kuku 
300     pupu
4       abcd
22      sfds
900     aqww
我想从工作表中选择“选择”内容,就像我们在SQL中可以做的那样:

select * from excel_sheet where col1 == selection

如何在Excel中执行此操作?

您可以尝试类似的操作,但必须将其向下和向上拉,以获得所有匹配的行和列

=IFERROR(INDEX(A$2:A$6,SMALL(IF(ISNUMBER(MATCH($A$2:$A$6,$D$2:$D$6,0)),ROW($A$2:$A$6)-1),ROW()-1)),"")
必须使用CtrlShiftCenter作为数组公式输入

另一种方法是向数据库中添加一个helper列并对其进行筛选

公式的操作如下(从最内层到最外层)

Match通常采用单个查找值匹配(lookupValue、range、options),但也可以与查找值数组一起使用,在这种情况下,它返回一个数组,其中包含每个查找值的结果,在这种情况下,对于A2:A6中的每个单元格,在D2:D6中查找时会给出

1; #N/A; 4; #N/A; #N/A

我们不想知道D2:D6的比赛在哪里,只想知道比赛是否成功。ISNUMBER产生

true: false; true; false; false

我们希望在A2:A6中找到成功匹配的行。如果测试失败,那么输出将为false,因此您可以

2; false; 4; false ; false
1; false; 3; false; false
减去一,得到

2; false; 4; false ; false
1; false; 3; false; false

Row()指包含公式(最初为F2)的单元格行,因此得到2,然后从中减去1得到1。如此之小将为您提供上述数组中的最小元素:1。当公式被下拉到B3中时,它将为您提供数组中的下一个非false元素:3

INDEX(A$2:A$6,SMALL(IF(ISNUMBER(MATCH($A$2:$A$6,$D$2:$D$6,0)),ROW($A$2:$A$6)-1),ROW()-1)),"")
标准使用索引给出A2:A6范围内的第n个单元格。在F2中,这是第一个包含1的单元格。在F3中,它是第三个单元格,包含4。在G2中,公式被拉过,因此它适用于B2:B6范围


如果索引/匹配失败,因为没有更多匹配项,IFERROR将显示一个空单元格


这些公式看起来很复杂,但它们是由相当标准的模式构建而成的,并得到了普通Excel用户社区的认可

可以通过删除-1的硬编码来改进该公式,从而减少插入/删除的风险

=IFERROR(INDEX(A$2:A$6,SMALL(IF(ISNUMBER(MATCH($A$2:$A$6,$D$2:$D$6,0)),ROW($A$2:$A$6)-ROW(A$1)),ROW()-ROW(A$1))),"")

您可以尝试类似的方法,但必须将其向下和横向拉,以获得所有匹配的行和列

=IFERROR(INDEX(A$2:A$6,SMALL(IF(ISNUMBER(MATCH($A$2:$A$6,$D$2:$D$6,0)),ROW($A$2:$A$6)-1),ROW()-1)),"")
必须使用CtrlShiftCenter作为数组公式输入

另一种方法是向数据库中添加一个helper列并对其进行筛选

公式的操作如下(从最内层到最外层)

Match通常采用单个查找值匹配(lookupValue、range、options),但也可以与查找值数组一起使用,在这种情况下,它返回一个数组,其中包含每个查找值的结果,在这种情况下,对于A2:A6中的每个单元格,在D2:D6中查找时会给出

1; #N/A; 4; #N/A; #N/A

我们不想知道D2:D6的比赛在哪里,只想知道比赛是否成功。ISNUMBER产生

true: false; true; false; false

我们希望在A2:A6中找到成功匹配的行。如果测试失败,那么输出将为false,因此您可以

2; false; 4; false ; false
1; false; 3; false; false
减去一,得到

2; false; 4; false ; false
1; false; 3; false; false

Row()指包含公式(最初为F2)的单元格行,因此得到2,然后从中减去1得到1。如此之小将为您提供上述数组中的最小元素:1。当公式被下拉到B3中时,它将为您提供数组中的下一个非false元素:3

INDEX(A$2:A$6,SMALL(IF(ISNUMBER(MATCH($A$2:$A$6,$D$2:$D$6,0)),ROW($A$2:$A$6)-1),ROW()-1)),"")
标准使用索引给出A2:A6范围内的第n个单元格。在F2中,这是第一个包含1的单元格。在F3中,它是第三个单元格,包含4。在G2中,公式被拉过,因此它适用于B2:B6范围


如果索引/匹配失败,因为没有更多匹配项,IFERROR将显示一个空单元格


这些公式看起来很复杂,但它们是由相当标准的模式构建而成的,并得到了普通Excel用户社区的认可

可以通过删除-1的硬编码来改进该公式,从而减少插入/删除的风险

=IFERROR(INDEX(A$2:A$6,SMALL(IF(ISNUMBER(MATCH($A$2:$A$6,$D$2:$D$6,0)),ROW($A$2:$A$6)-ROW(A$1)),ROW()-ROW(A$1))),"")

请您解释一下这个公式好吗?对不起,我会离开电脑一段时间,但稍后会扩展。谢谢!将应用您的解决方案并等待您的解释。我的荣幸!已按承诺扩大。请注意,D2:D5应该是D2:D6,以包括数字1-5。请您解释一下公式,好吗?对不起,将离开计算机一段时间,但稍后会扩展。谢谢!将应用您的解决方案并等待您的解释。我的荣幸!已按承诺扩大。请注意,D2:D5应该是D2:D6,以包括数字1-5。