Theo使用Excel工作表来跟踪其公司中的预订。数据仅包含三列。第一个是人名,第二个是预订的第一周号(1-52),第三个是预订的最后一周号。

人们可以保留多个星期(即,开始的周为15,结束的周为19)。 Theo需要一种输入周号的方法,然后使用公式确定与该周号关联的名称(A列)。数据不会以任何特定顺序排序,并且公司不会允许Theo使用宏来获取结果(它必须是一个公式)。

Theo的情况听起来很简单,但是在设计解决方案时充满了陷阱。查看潜在数据(如下图所示)(参见图1)可以快速说明为什么会出现这种情况。

image

图1. Theo问题的潜在数据。

请注意,数据(如Theo所说)不是按任何特定顺序排列的。

同样,请注意,有些星期没有保留(例如第5或6周),有些星期有多个人(例如第11或16周),还有有人保留的周,但是那一周该数字未显示在B或C列中(例如第12周或第17周)。

在开始研究潜在的解决方案之前,让我们假设您要了解的一周是单元格E1。您应该将此范围命名为“查询”。这种命名虽然不是绝对必要的,但会使理解公式更加容易。

一种可能的解决方案是添加通常称为“帮助列”的内容。将以下内容添加到单元格D2:

=IF(AND(Query>=B2,Query<=C2),"RESERVED","")

向下复制公式,以获取与表中名称相同数量的单元格。 (例如,将其向下复制到单元格D10中。)将星期几放在单元格E1中时,任何涉及该星期几的预订的右侧都会出现“ RESERVED”字样。也很容易看出该周是否保留了多个人,或者该周没有保留任何人。您甚至可以应用自动过滤器,然后选择仅在D列中显示单词为“ RESERVED”的记录。

如果需要,您可以放弃帮助器列,并考虑使用条件格式来显示谁保留了期望的一周。

只需在A列中选择名称,然后添加使用以下公式的条件格式设置规则:

=AND(Query>=B2,Query<=C2)

ExcelTips的其他问题中已详细介绍了如何输入条件格式设置规则。)设置规则,以使其更改应用于单元格的底纹(图案),您将很容易就能看到哪些保留项适用于您感兴趣的一周。

最后,您确实应该考虑修改数据的布局方式。

您可以创建一个工作表,该工作表在A列中有星期编号(1到52或53),然后在B列中放置姓名。如果一个人被保留两周,那么他们的名字将在B栏中出现两次,每个名字旁边他们保留了两个星期。

使用这种格式的数据,您可以轻松地扫描数据,以查看哪些星期可用,哪些星期使用以及谁使用。

如果要进行某种查找,可以很容易地使用基于星期数的VLOOKUP函数,因为它是数据的第一列(按排序顺序)。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(11077)适用于Microsoft Excel 97、2000、2002和2003。您可以在以下位置找到适用于Excel功能区界面(Excel 2007和更高版本)的本技巧的版本:

链接:/ excelribbon-Determining_a_Name_for_a_Week_Number [确定星期编号的名称]。