走野 发表于 2021-10-19 10:56:00

excel如何把前面区域内非空值按顺序整理到一列

excel表前面几列区域内有非空值和空值,如何用公式把前面这块区域内的非空值都整理到到一列。如图前4列内容

寂寞咖啡 发表于 2021-10-24 05:22:05


=IFERROR(INDEX(EVALUATE("{"&TEXTJOIN(",",1,TRANSPOSE($A$2:$D$18))&"}"),ROW(A1)),"")

曲经通幽 发表于 2021-11-5 20:37:47

提示该函数无效,确定后EVALUATE被选定,麻烦大佬指教一下

小石总 发表于 2021-11-19 23:31:07

提示该函数无效,确定后EVALUATE被选定,麻烦大佬指教一下

亦金 发表于 2021-12-11 20:39:21

可以试试PQ,2016版就可以
=List.RemoveNulls(List.Combine(Table.ToColumns(源)))

齊俊丞 发表于 2021-12-12 21:07:13

EVALUATEWPS能直接使用,EXCEL的话将EVALUATE("{"&TEXTJOIN(",",1,TRANSPOSE($A$2:$D$18))&"}") 这部分定义名称即可!

红汤焖肉吧 发表于 2021-12-14 05:46:07

上传附件可以快速得到解决。
附上论坛前辈的公式:
=INDIRECT(TEXT(MOD(SMALL(IF($A$2:$D$20<>"",ROW($A$2:$D$20)*100+COLUMN($A$2:$D$20)*10^4+COLUMN($A$2:$D$20)),ROW(A1)),10^4),"r0c00"),)&""
数组三键,下拉至错误值,区域自行修改。

年洛 发表于 2022-1-11 04:07:08

=small(区域,row(1:1)) 下拉 试试?

心香不灭 发表于 2022-1-26 21:26:33

{=INDIRECT(TEXT(RIGHT(SMALL(IF(A$2:D$20<>"",ROW($2:$20)*100+{1,2,3,4}*10001,"1E9"+199),ROW(A1)),4),"!r0c00"),)&""
页: [1]
查看完整版本: excel如何把前面区域内非空值按顺序整理到一列