给定excel中的一组值,如何在一列中找到它们?
给定子集a:给定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中执行此操作?您可以尝试类似的操作,但必须将其
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。