根据时间和日期列出计划的值

时间:2018-05-22 06:36:42

标签: excel

我使用

的标题存储在表格中的原始数据集合
1. Name, String             //Name of employee
2. Job, String              //The job site they are on
3. Start Date (SD), Date    //Starting date
4. End Date (ED), Date      //Ending date
5. Start Time(ST), Time     //Start time each day
6. End Time (ET), Time      //End time each day
7. Saturday, Bool           //Whether they will be onsite on Saturday
8. Sunday, Bool             //Same as above

在excel表中,我有一个格式化的表

Raw data

Working Schedule Spreadsheet

在每个单元格中,我目前已将此数组输入公式

=IFNA(INDEX(INDIRECT(Cells!$B$2), MATCH(1, ($A3 = INDIRECT(Cells!$A$2)) * (C$1 >= INDIRECT(Cells!$C$2)) * (C$1 < INDIRECT(Cells!$D$2)) * ($B3 >= INDIRECT(Cells!$E$2)) * ($B3 < INDIRECT(Cells!$F$2)), 0)), "")
//The INDIRECT references the input table

这当前有效,但不会检查员工是否安排在Sat或Sun(默认为false)。它的工作方式是对列出的所有变量进行多变量索引匹配。我无法弄清楚我如何能够包括布尔位。

我遇到的问题是,如果我将(TEXT(C$2, "ddd") = INDIRECT(Cells!$G$2))添加到比赛中,那么只有在<星期六

根本不会显示。

Broken Schedule Spreadsheet using second formula

我希望这是有道理的,如果需要,我可以提供更多信息。感谢

1 个答案:

答案 0 :(得分:1)

添加几个条件。

=IFNA(INDEX(INDIRECT(Cells!$B$2),MATCH(1,($A3=INDIRECT(Cells!$A$2))*(C$1>=INDIRECT(Cells!$C$2))*(C$1<INDIRECT(Cells!$D$2))*($B3>=INDIRECT(Cells!$E$2))*($B3<INDIRECT(Cells!$F$2))*IF(WEEKDAY(F$1)=7,INDIRECT(Cells!$G$2),1)*IF(WEEKDAY(F$1)=1,INDIRECT(Cells!$H$2),1),0)),"")