全部展开/折叠  
                     networkdays  - 脚本和图表功能在该页面上  
                networkdays  函数用于返回工作日的编号(周一至周五),在 start_date  和 end_date  之间,并将任何列出的可选 holiday 考虑在内。 
                语法:    
                networkdays
 ( start_date, end_date [, holiday] ) 
                
                返回数据类型:    整数
                
                    日历图表显示 networkdays 函数返回的日期范围
                    
                  
                networkdays  函数具有以下限制:
                
                
                    参数 
                     
                     
                    
                        
                     
                    
                        
                            start_date 
                             
                            评估的开始日期。 
                         
                        
                            end_date 
                             
                            评估的结束日期。 
                         
                        
                            holiday 
                             
                            
                                从工作日排除假期。假日表示为字符串常量日期。您可以指定多个假期日期,以逗号分隔。
                                示例:   '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' 
                                
                             
                         
                     
                
 
                适合使用 networkdays  的情况 
                当用户希望计算使用两个日期之间的工作周天数时,networkdays()  函数通常用作表达式的一部分。例如,如果用户希望计算员工在 PAYE(即收即付)合同中的总工资。
                
                    函数示例 
                     
                     
                    
                        
                     
                    
                        
                            networkdays ('12/19/2013', '01/07/2014') 
                             
                            返回 14。以下示例没有将假期考虑在内。 
                         
                        
                            networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013') 
                             
                            返回 12。以下示例将 12/25/2013  至 12/26/2013  的假期考虑在内。 
                         
                        
                            networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014') 
                             
                            返回 10。以下示例将两个假期考虑在内。 
                         
                     
                
 
                区域设置 
                除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat  语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。有关详细信息,请参阅修改应用程序和脚本的区域设置  。 
                应用程序中的默认区域设置基于用户配置文件。这些区域格式设置与 Qlik Cloud  用户界面中显示的语言无关。Qlik Cloud  将以与您使用的浏览器相同的语言显示。
                如果你是应用程序创建者,你可以为自己创建的应用程序设置默认区域。有关更多信息,请参阅设置 Qlik Cloud Analytics 中创建应用程序和脚本所用的首选区域设置  。
                
                    示例 1 – 基本示例 
                    加载脚本和结果 
                            概览
                            打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                            加载脚本包含:
                            
                                
                                    包含项目 ID、开始日期和结束日期的数据集 。该信息加载到名为 Projects  的表中。
                                 
                                
                                    日期字段 已以 DateFormat  系统变量  (MM/DD/YYYY) 格式提供。
                                 
                                
                                    创建一个额外的字段 net_work_days ,以计算每个项目所涉及的工作日数。
                                 
                             
                            加载脚本
                            SET DateFormat='MM/DD/YYYY';
Projects:
    Load
        *,
        networkdays(start_date,end_date) as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
]; 
                            结果
                            加载数据并打开工作表。创建新表并将这些字段添加为维度:
                            
                                
                                    id 
                                    
                                 
                                
                                    start_date 
                                    
                                 
                                
                                    end_date 
                                    
                                 
                                
                                    net_work_days 
                                    
                                 
                             
                            
                                结果表 
                                 
                                 
                                 
                                 
                                
                                    
                                 
                                
                                    
                                        1 
                                        01/01/2022 
                                        01/18/2022 
                                        12 
                                     
                                    
                                        2 
                                        02/10/2022 
                                        02/17/2022 
                                        6 
                                     
                                    
                                        3 
                                        05/17/2022 
                                        07/05/2022 
                                        36 
                                     
                                    
                                        4 
                                        06/01/2022 
                                        06/12/2022 
                                        8 
                                     
                                    
                                        5 
                                        08/10/2022 
                                        08/26/2022 
                                        13 
                                     
                                 
                            
 
                            由于没有计划的假日(这将出现在 networkdays()  函数的第三个参数中),函数从 end_date  中以及所有周末中减去 start_date ,以计算两个日期之间的工作日数。
                            
                                突出显示项目 5 工作日的日历图(无节假日)
                                
                              
                             上面的日历以为 5 的 id  从视觉上勾勒出项目的轮廓。项目 5 于 2022 年 8 月 10 日星期三开始,2022 年 9 月 26 日结束。由于忽略了所有周六和周日,这两个日期之间(包括在内)有 13 个工作日。
                          
                 
                
                    示例 2 - 单假期  
                    加载脚本和结果 
                            概览
                            打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                            加载脚本包含:
                            
                            在这个例子中,2022 年 8 月 19 日有一天的假期。
                            加载脚本
                            SET DateFormat='MM/DD/YYYY';
Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/19/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
]; 
                            结果
                            加载数据并打开工作表。创建新表并将这些字段添加为维度:
                            
                                
                                    id 
                                    
                                 
                                
                                    start_date 
                                    
                                 
                                
                                    end_date 
                                    
                                 
                                
                                    net_work_days 
                                    
                                 
                             
                            
                                结果表 
                                 
                                 
                                 
                                 
                                
                                    
                                 
                                
                                    
                                        1 
                                        01/01/2022 
                                        01/18/2022 
                                        12 
                                     
                                    
                                        2 
                                        02/10/2022 
                                        02/17/2022 
                                        6 
                                     
                                    
                                        3 
                                        05/17/2022 
                                        07/05/2022 
                                        36 
                                     
                                    
                                        4 
                                        06/01/2022 
                                        06/12/2022 
                                        8 
                                     
                                    
                                        5 
                                        08/10/2022 
                                        08/26/2022 
                                        12 
                                     
                                 
                            
 
                            单个计划假日作为 networkdays()  函数中的第三个参数输入。 
                            
                                突出显示项目 5 工作日的日历图(单个假日)
                                
                              
                            上面的日历直观地勾勒了项目 5,展示了将假日包括在内的调整。这个假期发生在 2022 年 8 月 19 日星期五的项目 5 期间。因此,项目 5 的总 net_work_days  值减少了一天,从 13 天减少到 12 天。
                          
                 
                
                    示例 3 - 多个假期 
                    加载脚本和结果 
                            概览
                            打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                            加载脚本包含:
                            
                            然而,在本例中,有四个假期计划于 2022 年 8 月 18 日至 8 月 21 日。
                            加载脚本
                            SET DateFormat='MM/DD/YYYY';
Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/18/2022','08/19/2022','08/20/2022','08/21/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
]; 
                            结果
                            加载数据并打开工作表。创建新表并将这些字段添加为维度:
                            
                                
                                    id 
                                    
                                 
                                
                                    start_date 
                                    
                                 
                                
                                    end_date 
                                    
                                 
                                
                                    net_work_days 
                                    
                                 
                             
                            
                                结果表 
                                 
                                 
                                 
                                 
                                
                                    
                                 
                                
                                    
                                        1 
                                        01/01/2022 
                                        01/18/2022 
                                        12 
                                     
                                    
                                        2 
                                        02/10/2022 
                                        02/17/2022 
                                        6 
                                     
                                    
                                        3 
                                        05/17/2022 
                                        07/05/2022 
                                        36 
                                     
                                    
                                        4 
                                        06/01/2022 
                                        06/12/2022 
                                        8 
                                     
                                    
                                        5 
                                        08/10/2022 
                                        08/26/2022 
                                        11 
                                     
                                 
                            
 
                            从 networkdays()  函数的第三个参数开始,以逗号分隔的列表形式输入四个计划假日。 
                            
                                突出显示项目 5 工作日的日历图(多个节假日)
                                
                              
                            上面的日历直观地勾勒了项目 5,展示了将这些假日包括在内的调整。这段计划假期发生在项目 5 期间,其中两天发生在星期四和星期五。因此,项目 5 的总 net_work_days  值从 13 天减少到 11 天。
                          
                 
                
                    示例 4 - 单假期  
                    加载脚本和图表表达式 
                            概览
                            打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                            加载脚本包含:
                            
                            2022 年 8 月 19 日有一天的假期。
                            然而,在本例中,未更改的数据集被加载到应用程序中。net_work_days  字段作为图表对象中的度量 计算。
                            加载脚本
                            SET DateFormat='MM/DD/YYYY';
Projects:
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
]; 
                            结果
                            加载数据并打开工作表。创建新表并将这些字段添加为维度:
                            
                            创建以下度量:
                            = networkdays(start_date,end_date,’08/19/2022’) 
                            
                            
                                结果表 
                                 
                                 
                                 
                                 
                                
                                    
                                 
                                
                                    
                                        1 
                                        01/01/2022 
                                        01/18/2022 
                                        12 
                                     
                                    
                                        2 
                                        02/10/2022 
                                        02/17/2022 
                                        6 
                                     
                                    
                                        3 
                                        05/17/2022 
                                        07/05/2022 
                                        36 
                                     
                                    
                                        4 
                                        06/01/2022 
                                        06/12/2022 
                                        8 
                                     
                                    
                                        5 
                                        08/10/2022 
                                        08/26/2022 
                                        12 
                                     
                                 
                            
 
                            单个计划假日作为 networkdays()  函数中的第三个参数输入。 
                            
                                日历图,显示带单个假日的净工作日(图表对象)
                                
                              
                            上面的日历直观地勾勒了项目 5,展示了将假日包括在内的调整。这个假期发生在 2022 年 8 月 19 日星期五的项目 5 期间。因此,项目 5 的总 net_work_days  值减少了一天,从 13 天减少到 12 天。