给定一个连续的、可变长度 (rx1) 数组的列表,动态堆叠数组(垂直),使它们遵循一组特定的规则 - 首先按状态表中的顺序列排序,然后按状态表中的顺序列排序。分类表;类别更改后跳过 1 个空格,状态更改后跳过 2 个空格;忽略空格;解决输出范围中的控制面板列补充规则(示例输出 1)。
该文件可以在这里下载。谢谢!
这是执行此操作的一种方法。这使用 2 个
LAMBDA()
辅助函数,一个是 MAKEARRAY()
根据两个条件创建主输出,而另一个使用 BYCOL()
作为标题行上的计数:
• 单元格中使用的公式 J29
=LET(
_Seq, SEQUENCE(,MAX(Classifications['#])),
_Class, TOROW(IF(_Seq<=Classifications['#],Classifications[Class])),
_Header, VSTACK(_Class, TOROW(SORTBY(IF(_Seq,States[States]),States[Order]),,1)),
_Rows, MAX( COUNTIFS(Entities[Classification],INDEX(_Header,1,),Entities[State],INDEX(_Header,2,))),
_Output, IFERROR(MAKEARRAY(_Rows, COLUMNS(_Class), LAMBDA(r,c,
INDEX(SORT(FILTER(Entities,(INDEX(_Class,c)=Entities[Classification])*(INDEX(_Header,2,c)=Entities[State])),4),r,1))),""),
_Counts, BYCOL(_Output,LAMBDA(Σ,SUM(N(Σ<>"")))),
VSTACK(_Counts, _Header, _Output))