我正在尝试使用特定条件在表中查找排序数据的结果
例如:
黄色是ALL-JOB用户填充 RED未完成的工作按“开始日期”排序 绿色是按“结束日期”和“作业ID”完成的作业排序
我需要将数据按黄色表排序,并将结果显示在红色/绿色表中,最小到最大
任何帮助将不胜感激。提前非常感谢您。
ps。我的英语不好。如果我在语法上犯了错误,请原谅我。
答案 0 :(得分:0)
使用新的动态数组功能(当前仅可用于Office 365 Insiders),几个公式将快速完成您想要的操作:
首先获取红色数据,然后在G3中输入:
=SORTBY(FILTER(B3:D100,(D3:D100="")*(B3:B100<>""),""),FILTER(B3:B100,(D3:D100="")*(B3:B100<>""),""))
然后在F3中放:
=SEQUENCE(ROWS(G3#))
在L3中:
=SORTBY(FILTER(B3:D100,(D3:D100<>"")*(B3:B100<>""),""),FILTER(D3:D100,(D3:D100<>"")*(B3:B100<>""),""),1,FILTER(C3:C100,(D3:D100<>"")*(B3:B100<>""),""),-1)
以及在K3中:
=SEQUENCE(ROWS(L3#))
Excel会相应地溢出数据,而无需将粘贴公式复制到所有单元格中。
没有动态数组函数,我们需要求助于INDEX / AGGREGATE,只有一种,第二种给函数增加了太多。
首先按作业编号对原始数据进行排序,然后使用以下内容
在G3中放:
=IFERROR(INDEX(B:B,AGGREGATE(15,7,ROW($B$3:$B$17)/((AGGREGATE(15,7,$B$3:$B$17/(($D$3:$D$17="")*(COUNTIFS($H$2:$H2,$B$3:$B$17)=0)),ROW($ZZ1))=$B$3:$B$17)*($D$3:$D$17="")*(COUNTIFS($H$2:$H2,$C$3:$C$17)=0)),1)),"")
上下复制范围。然后在F3中放:
=IF(G3<>"",ROW($ZZ1),"")
然后复制范围
另一个,将其放在L3中:
=IFERROR(INDEX(B:B,AGGREGATE(15,7,ROW($B$3:$B$17)/((AGGREGATE(15,7,$D$3:$D$17/(($D$3:$D$17<>"")*(COUNTIFS($H$2:$H2,$B$3:$B$17)=0)),ROW($ZZ1))=$D$3:$D$17)*($D$3:$D$17<>"")*(COUNTIFS($H$2:$H2,$C$3:$C$17)=0)),1)),"")
然后上下复制范围。然后在K3中放
=IF(L3<>"",ROW($ZZ1),"")
复制范围。
同时使用这两种格式,您都需要使用所需的数字格式来格式化输出单元格。