我尝试了一些小功能,但没有成功。
在 Office 365 中,这可以工作:
=SORTBY(A1:G1,ISERR(1/A1:G1))
如果我们按错误(结果为 TRUE)和非错误(结果为 FALSE)对范围进行排序,则 1/A1:G1
将为所有 0
值(1/0 为 #DIV/0!
)创建错误。首先显示大于 0 的数字,然后显示 0 数字。
对于较旧的 Excel,您可以使用此:
=IFERROR(INDEX($A$1:$G$1,,IF(COLUMN(A1)<=SUMPRODUCT(1-ISERR(1/$A$1:$G$1)),
AGGREGATE(15,6,COLUMN($A$1:$G$1)/ISNUMBER(1/$A$1:$G$1),COLUMN(A1)),
AGGREGATE(15,6,COLUMN($A$1:$G$1)/ISERR(1/$A$1:$G$1),COLUMN(A1)-SUMPRODUCT(1-ISERR(1/$A$1:$G$1))))),
"")
在这里,我们对大于 0 的数字的范围和聚合列号进行索引,如果索引超过可能的正数,我们从聚合 0 值开始。