
excel公式请帮忙解释一下,是关于提取符合条件的多条数据的?
=INDEX(A:A,SMALL(IF(COUNTIF($E$2:$E$4,$A$2:$A$11),ROW($2:$11),100),ROW(A1)))&""这是我在网上...
=INDEX(A:A,SMALL(IF(COUNTIF($E$2:$E$4,$A$2:$A$11),ROW($2:$11),100),ROW(A1)))&""
这是我在网上找到的一个公式,整个处理逻辑没看懂,请把其中每个函数要实现的目的说明一下
公式中A列是数据表首列,数据从A2开始到A11结束,E列是查询表的条件列 展开
这是我在网上找到的一个公式,整个处理逻辑没看懂,请把其中每个函数要实现的目的说明一下
公式中A列是数据表首列,数据从A2开始到A11结束,E列是查询表的条件列 展开
展开全部
我来解释一下吧,COUNTIF($E$2:$E$4,$A$2:$A$11)的意思是对E2:E4单元格进行条件计数,计算它与A2:A11相符的个数,返回的长度是与第二参数A2:A11一样的,空对空的也不便说明,举个例子吧,E2:E4单元格的内容为"电器";“机械”;“塑料”,A2:A11单元格的内容为“电器";"木材";"塑料";"书本";"电器";"机械";"混凝土";"塑料";"金属";"机械"
这样COUNTIF($E$2:$E$4,$A$2:$A$11)的结果就是{1;0;1;0;1;1;0;1;0;1}
由于COUNTIF函数的第二参数用了A2:A11这个单元格区域,所以得到的结果也是一个数组,在E2:E4范围内有的A2:A11数据,就返回1,没有的,就返回0,它的外面再套一个IF,IF的第二参数为row(2:11),第三参数为100,如果第一参数为1,就是得到对应ROW(2:11)的{2;3;4;5;6;7;8;9;10;11}中的一个, 如果第一参数为0,就得到100,这样整个IF(COUNTIF($E$2:$E$4,$A$2:$A$11),ROW($2:$11),100)的结果就是
{2;100;4;100;6;7;100;9;100;11}
外面再套一个SMALL函数,第二参数再用ROW(A1),就是1,取第一小,就取到2,下拉到第二个单元格,就是ROW(A2),就是2,第二小,就是4,第三小,就是6,后面就是7;9;11,把它们用到INDEX的第二参数中,就能取到A列对应的数据了,11取好之后,就取到A100的数据了,那里应该是空,再连接上“”,就会得到空,可以去除错误值。
其实也不太说得清楚,如果你想弄明白,还需要你自己去拆解,EXCEL中就自带拆解方法,可以在编辑栏中用鼠标拖黑选中比如COUNTIF($E$2:$E$4,$A$2:$A$11)或IF(COUNTIF($E$2:$E$4,$A$2:$A$11),ROW($2:$11),100)等这样一段公式中的内容,按下F9键,就可以看到这一段运行的结果了,按CTRL+Z就可以返回,或者按ESC退出,慢慢就会弄明白了。
这样COUNTIF($E$2:$E$4,$A$2:$A$11)的结果就是{1;0;1;0;1;1;0;1;0;1}
由于COUNTIF函数的第二参数用了A2:A11这个单元格区域,所以得到的结果也是一个数组,在E2:E4范围内有的A2:A11数据,就返回1,没有的,就返回0,它的外面再套一个IF,IF的第二参数为row(2:11),第三参数为100,如果第一参数为1,就是得到对应ROW(2:11)的{2;3;4;5;6;7;8;9;10;11}中的一个, 如果第一参数为0,就得到100,这样整个IF(COUNTIF($E$2:$E$4,$A$2:$A$11),ROW($2:$11),100)的结果就是
{2;100;4;100;6;7;100;9;100;11}
外面再套一个SMALL函数,第二参数再用ROW(A1),就是1,取第一小,就取到2,下拉到第二个单元格,就是ROW(A2),就是2,第二小,就是4,第三小,就是6,后面就是7;9;11,把它们用到INDEX的第二参数中,就能取到A列对应的数据了,11取好之后,就取到A100的数据了,那里应该是空,再连接上“”,就会得到空,可以去除错误值。
其实也不太说得清楚,如果你想弄明白,还需要你自己去拆解,EXCEL中就自带拆解方法,可以在编辑栏中用鼠标拖黑选中比如COUNTIF($E$2:$E$4,$A$2:$A$11)或IF(COUNTIF($E$2:$E$4,$A$2:$A$11),ROW($2:$11),100)等这样一段公式中的内容,按下F9键,就可以看到这一段运行的结果了,按CTRL+Z就可以返回,或者按ESC退出,慢慢就会弄明白了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询