Excel:条件格式化,简化了从一系列行中检索数据的过程


1

我正在尝试为有限数量的场地(大约15个)之间的有限数量的培训(大约50个)创建一个时间表,我正在寻找比我目前使用的更聪明的方法。

该计划包含两个电子表格:

电子表格1包含培训数据。每次训练一排。使用colums作为培训地点的名称,开始日期和结束日期。

电子表格2应该是电子表格1中数据的可视化表示,其适应原始数据的变化。到目前为止,它包含一年中每天的一列和每个培训地点一行。因此,每个单元格代表特定培训地点的特定日期。

目的是,如果片材1表示一个训练是在场内发生AZ1 April 2017直到27 April 2017,表示从日期的单元格1 April,直到27 April该行训练场地中AZ在片材2通过条件格式进行标记。

我目前用于代表训练场地的行的条件格式化功能AZ将是:

=IF(OR(AND(Sheet1!$C$5="AZ";Sheet1!$F$5>=B$6;Sheet1!$E$5<=B$6);AND(Sheet1!$C$6="AZ";Sheet1!$F$6>=B$6;Sheet1!$E$6<=B$6); ...... AND(Sheet1!$C$50="AZ";Sheet1!$F$50>=B$6;Sheet1!$E$50<=B$6));TRUE;FALSE)

因此,重复的AND部分检查每个单元格,其列的日期(包含在第6行中)是否属于表1中任何培训的开始和结束日期,以及该培训是否在培训地点进行AZ。如果对于表1中的任何训练都是如此,则IF函数为真并且标记单元格。

令人惊讶的是,到目前为止这是有效的。然而,这是一个非常耗时且不优雅的解决方案。所以现在我正在寻找一种方法来停止为15个训练场地中的每一个重复50次的AND功能部分。

广泛的谷歌搜索建议,数组公式可能是一种方法,并且条件格式默认被视为数组公式,所以我尝试:

=IF(AND(Sheet1!C3:C54="AZ";AND(B$6>=Sheet1!E3:E54;B$6<=Sheet1!F3:F54));TRUE;FALSE)

=IF(OR(AND(Sheet1!C3:C54="AZ";AND(B$6>=Sheet1!E3:E54;B$6<=Sheet1!F3:F54)));TRUE;FALSE)

但到目前为止没有运气。我想我可能还没有完全掌握数组公式如何工作。因此,如果您发现我的功能中有任何明显的错误,对我可以尝试的内容有任何想法,或者可以建议我尝试做什么的其他方法,请告诉我。

否则,我可能会无意中复制和调整这个血腥的AND部分无限。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.