excel函数:提取数据后忽略空白行按指定列排列如何实现?

如图:D列通过判断A列尾数为奇数或者偶数提取出来了,但如何实现提取出数据后,填补空白行,并按照B列序号大小进行排序?求解。

公式=TEXTSPLIT(TEXTJOIN(",",,IF(ISODD(--RIGHT(A2:A14,1)),A2:A14,"")),,","),适合excel365版本,

或=MID(TEXTJOIN(,,IF(ISODD(--RIGHT(A2:A14,1)),A2:A14,"")),(ROW(1:10)-1)*5+1,5),

具体如下图所示:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-05-04

对于求尾数为奇数的数据,选中D2:D14,粘贴公式=IFERROR(INDEX(A:A,MATCH(IFERROR(SMALL(IF(ISODD(RIGHT($A$2:$A$14,1)),$B$2:$B$14,""),ROW($A$1:$A$13)),""),B:B,0),1),""),然后同时按组合键CTRL+ALT+ENTER。

追问

厉害了,大神能再帮我一下,说说每一个函数和内容都是什么意思吗?

追答

简单说下吧,建议拆解公式尝试方便理解:
①IF(ISODD(RIGHT($A$2:$A$14,1)),$B$2:$B$14,""):当A列某单元格数据尾数为奇数时,取同行B列单元格内容;
②SMALL(①,ROW($A$1:$A$13)):用ROW($A$1:$A$13)获取1到13这13个自然数,使得SMALL分别获取①的结果,即让序号从小到大排序;
③IFERROR(②,""):如果②结果出错,显示为空,即仅保留所需序号,方便外层函数计算;
④MATCH(③,B:B,0),1)):确定排序后,找相应序号所在行号;
⑤INDEX(A:A,④,1):在A列找④行号对应的数据;
⑥IFERROR(⑤,""):同③,舍弃出错部分(显示为空),可见部分就是目标内容。

本回答被提问者采纳
相似回答