从表中提取行和列标题的列表匹配2个条件

时间:2019-07-24 10:41:59

标签: filter excel-formula excel-tables

我正在尝试接收符合标题行条件的列标题名称。 数据主体范围值可以重复

         A           B             C             D             E                    
     --------- ------------- ------------- ------------- ------------- 
  1             Component 1   Component 2   Component 3   Component 4  
  2   Asset 1   18-Mar-2020   18-Mar-2020   3-Aug-2021    6-May-2021   
  3   Asset 2   4-Jul-2020    2-Aug-2021    6-May-2020    13-Jul-2019  
  4   Asset 3   21-Aug-2019   1-Mar-2021    1-Mar-2021    22-Sep-2020  

将表格转置到该视图中

        A           B             C       
 ---- --------- ------------- ------------- 
   1   Asset #      Data       Component #  
   2   Asset 1   18-Mar-2020   Component 1  
   3   Asset 1   18-Mar-2019   Component 2  
   4   Asset 1   3-Aug-2021    Component 3  
   5   Asset 1   6-May-2021    Component 4  
   6   Asset 2   4-Jul-2020    Component 1  
   7   Asset 2   2-Aug-2021    Component 2  
   8   Asset 2   6-May-2020    Component 3  
   9   Asset 2   13-Jul-2019   Component 4  
  10   Asset 3   21-Aug-2019   Component 1  
  11   Asset 3   1-Mar-2021    Component 2  
  12   Asset 3   1-Mar-2021    Component 3  
  13   Asset 3   22-Sep-2020   Component 4  

我创建了一个过滤器,该过滤器为我提供了与资产#​​1的两个日期(2020年和2021年)之间的条件匹配的列标题(组件#)的结果(可以更改为#2或3等)。

         Asset #      Data       Component #  
 ------ --------- ------------- ------------- 
  2020   Asset 1   18-Mar-2020   Component 1  
  2021                                         

此数组公式位于“数据”列中:

=IFERROR(INDEX($B$1:$B$13, SMALL(IF(1=((--($F$2=$A$1:$A$13))*(--($E$2<=$B$1:$B$13))*(--($E$3>=$B$1:$B$13))), ROW($B$1:$B$13),""), ROW()-1)),"")

此数组公式位于“组件号”列中:

=IFERROR(INDEX($C$1:$C$13, SMALL(IF(1=((--($F$2=$A$1:$A$13))*(--($E$2<=$B$1:$B$13))*(--($E$3>=$B$1:$B$13))), ROW($B$1:$B$13),""), ROW()-1)),"")

是否可以在不转置原始表的情况下进行这种过滤,或者至少使用数组公式接收转置表,因为原始表是可变的,所以内部的日期可以更改,因此我必须再次转置它。如果我可以在它们之间建立链接,那就太好了。

0 个答案:

没有答案