Excel – 具有相同值的多个列的INDEX函数

我试图把东西放在一起,使我能够随时find某个特定楼层的电梯位置。 数据样本如下:

Time | Catering Area | Waste Area | Waste Area 5:00am | L2 | L2 | L4 5:05am | L2 | L7 | L5 5:10am | B1 | L3 | L7 5:15am | B2 | L4 | L9 

我已经设置了两个下拉字段来selectbuild筑物的等级和面积(例如L7和垃圾区)。 基于这些select,我想要显示电梯何时在build筑物区域内的所需水平; 即:

 Level Selected: L7; Building Area Selected: Waste Area Time | Lift At L7? 5:00am | No 5:05am | Yes 5:10am | Yes 5:15am | No 

我已经build立了一个INDEX函数,但是我需要search具有相同头名称的多个列,即。 “废物区”。 目前的function如下:

 INDEX($A$1:$D$5,MATCH(A10,A:A,0),[col_num]) 

然后,这将与IF语句配对,以检查返回的级别是否与下拉字段中的期望级别匹配。 如上所示,结果将是每次“是”或“否”的列表。

任何帮助将不胜感激。

试试COUNTIFS()工作表函数。

  =COUNTIFS(B$1:D$1,"Waste Area",B2:D2,"L7") =COUNTIFS(B$1:D$1,"Waste Area",B3:D3,"L7") =COUNTIFS(B$1:D$1,"Waste Area",B4:D4,"L7") =COUNTIFS(B$1:D$1,"Waste Area",B5:D5,"L7") 

当地区匹配和地面匹配时,它将计入条目。 非零=“是”。

由于您的输出时间列与input完全相同,因此我假定您实际上并不需要search正确的行。 如果你有更多的技巧,我可以告诉你…

(编辑…)
如果您需要search特定时间,请使用find正确行的公式replace第三个参数B2:D2

  OFFSET(B$1:D$1,MATCH(A16,A$2:A$5),0) 

所以它成为

  =COUNTIFS( B$1:D$1, AREA_NAME, OFFSET(B$1:D$1,MATCH(A16,A$2:A$5),0), FLOOR) 

假设你的数据是在A1:D5中,并且你已经命名了你的范围(注意Waste包含两列)

 Catering =Sheet1!$B$2:$B$5 Times =Sheet1!$A$2:$A$5 Waste =Sheet1!$C$2:$D$5 

在某个单元格中复制Times的列表; 我用A11:A14

使用面积中的下拉值复制定义的名称,包含所选层次的B9和包含build筑面积的D9(均来自下拉列表),可以使用以下公式返回TRUE或FALSE,具体取决于电梯是否处于位置。

对于是/否响应,在IF语句中使用此公式作为Logical_test。

这个公式必须是数组input的 ,然后每次填写相邻的:

 =OR((A11=Times)*($B$9=INDIRECT($D$9))) 

input公式,在将公式input到单元格或公式栏后,按住同时按下。 如果你这样做是正确的,Excel将把括号{…}放在公式的周围。