全部展开/折叠  
                     weekyear  - 脚本和图表函数在该页面上  
                此函数用于返回根据环境变量 周数所属的年份。星期数范围在 1 和大约 52 之间。
                语法:    
                weekyear( timestamp [, first_week_day [, broken_weeks [, reference_day]]] ) 
                
                返回数据类型:    整数
                
                    参数 
                     
                     
                    
                        
                     
                    
                        
                            timestamp 
                             
                            要评估的日期或时间戳。 
                         
                        
                            first_week_day 
                             
                            
                                指定一周的开始日期。如果忽略,使用 FirstWeekDay  变量 的值。
                                可能的值 first_week_day  为:周一为 0,周二为 1,周三为 2,周四为3,周五为 4,周六为 5,星期日为 6。
                                 						有关系统变量的详细信息,请参见FirstWeekDay  。
                             
                         
                        
                            broken_weeks 
                             
                            
                                如果不指定 broken_weeks ,则变量 BrokenWeeks  的值将用于定义周是否已中断。
                                 							有关系统变量的详细信息,请参见BrokenWeeks 
                             
                         
                        
                            reference_day 
                             
                            
                                如果不指定 reference_day ,则变量 ReferenceDay  的值将用于定义将一月的哪一天设置为定义第 1 周的参考日。默认设置下,Qlik Sense  函数使用 4 作为参考日。这意味着第 1 周必须包含 1 月 4 日,换句话说,第 1 周始终至少具有 1 月份的前 4 天。
                                 							有关系统变量的详细信息,请参见ReferenceDay 
                             
                         
                     
                
 
                
                    weekyear()  函数确定日期属于年份的哪个周。然后返回与该周数对应的年份。
                    如果 BrokenWeeks  设置为 0  (false),weekyear()  将返回与 year()  相同的。 
                    
                        weekyear()  函数范围的图表
                        
                      
                    但是,如果 BrokenWeeks  系统变量设置为使用连续周,则根据 ReferenceDay  系统变量中指定的值,第 1 周只能包含 1 月份的特定天数。 
                    例如,如果使用 4  的 ReferenceDay  值,则第 1 周必须包括 1 月份的至少四天。第 1 周可以包括上一年 12 月的日期,或者一年的最后一周可以包括下一年 1 月的日期。在这种情况下,weekyear()  函数将向 year()  函数返回不同的值。
                    
                        使用非中断周时的 weekyear()  函数范围的图表
                        
                      
                    适用场景
                    当您希望按年份比较聚合时,weekyear()  函数非常有用。例如,如果您希望按年份查看产品的总销售额。当用户希望与应用程序 中的 BrokenWeeks  系统变量保持一致时,可以选择 weekyear()  函数而非 year() 。
                 
                
                    区域设置 
                    除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat  语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。有关详细信息,请参阅修改应用程序和脚本的区域设置  。 
                    应用程序中的默认区域设置基于用户配置文件。这些区域格式设置与 Qlik Cloud  用户界面中显示的语言无关。Qlik Cloud  将以与您使用的浏览器相同的语言显示。
                    如果你是应用程序创建者,你可以为自己创建的应用程序设置默认区域。有关更多信息,请参阅设置 Qlik Cloud 分析 中创建应用程序和脚本所用的首选区域设置  。
                    
                        函数示例 
                         
                         
                        
                            
                                示例   
                                结果   
                             
                         
                        
                            
                                weekyear('12/30/1996',0,0,4) 
                                 
                                返回 1997,因为 1997 年第 1 周从 1996 年 12 月 30 日开始   
                             
                            
                                weekyear('01/02/1997',0,0,4) 
                                 
                                返回 1997   
                             
                            
                                weekyear('12/28/1997',0,0,4) 
                                 
                                返回 1997   
                             
                            
                                weekyear('12/30/1997',0,0,4)   
                                返回 1998,因为 1998 年第 1 周从 1997 年 12 月 29 日开始   
                             
                            
                                weekyear('01/02/1999',0,0,4) 
                                 
                                返回 1998,因为 1998 的第 53 周在 1999 年的 1 月 3 日结束   
                             
                         
                    
 
                    
                 
                
                    示例 1 - 中断周 
                    加载脚本和结果  
                            概述
                            打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                            加载脚本包含:
                            
                            加载脚本
                            SET BrokenWeeks=1; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
];  
                            结果
                            加载数据并打开工作表。创建新表并将这些字段添加为维度:
                            
                            
                                结果表 
                                 
                                 
                                 
                                 
                                
                                    
                                        id   
                                        日期   
                                        周   
                                        week_year   
                                     
                                 
                                
                                    
                                        8176   
                                        12/28/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8177   
                                        12/29/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8178   
                                        12/30/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8179   
                                        12/31/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8180   
                                        01/01/2021   
                                        1   
                                        2021   
                                     
                                    
                                        8181   
                                        01/02/2021   
                                        1   
                                        2021   
                                     
                                    
                                        8182   
                                        01/03/2021   
                                        2   
                                        2021   
                                     
                                    
                                        8183   
                                        01/04/2021   
                                        2   
                                        2021   
                                     
                                    
                                        8184   
                                        01/05/2021   
                                        2   
                                        2021   
                                     
                                    
                                        8185   
                                        01/06/2021   
                                        2   
                                        2021   
                                     
                                    
                                        8186   
                                        01/07/2021   
                                        2   
                                        2021   
                                     
                                 
                            
 
                            通过使用 weekyear()  函数并将日期字段作为函数的参数传递,在前置 Load 语句中创建了 ‘week_year ’ 字段。
                            BrokenWeeks  系统变量设置为 1 ,意味着应用程序使用中断周。第 1 周从 1 月 1 日开始。
                            
                                使用中断周的 weekyear()  函数范围的图表
                                
                              
                            交易 8181 发生在1月2日,这是第 1 周的一部分。因此,它为 ‘week_year ’ 字段返回 2021 的值。
                          
                    示例 2 - 非中断周 
                    加载脚本和结果  
                            概述
                            打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                            加载脚本包含:
                            
                            但是,在本例中,公司政策是使用非中断周。
                            加载脚本
                            SET BrokenWeeks=0; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
];  
                            结果
                            加载数据并打开工作表。创建新表并将这些字段添加为维度:
                            
                            
                                结果表 
                                 
                                 
                                 
                                 
                                
                                    
                                        id   
                                        日期   
                                        周   
                                        week_year   
                                     
                                 
                                
                                    
                                        8176   
                                        12/28/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8177   
                                        12/29/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8178   
                                        12/30/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8179   
                                        12/31/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8180   
                                        01/01/2021   
                                        53   
                                        2020   
                                     
                                    
                                        8181   
                                        01/02/2021   
                                        53   
                                        2020   
                                     
                                    
                                        8182   
                                        01/03/2021   
                                        1   
                                        2021   
                                     
                                    
                                        8183   
                                        01/04/2021   
                                        1   
                                        2021   
                                     
                                    
                                        8184   
                                        01/05/2021   
                                        1   
                                        2021   
                                     
                                    
                                        8185   
                                        01/06/2021   
                                        1   
                                        2021   
                                     
                                    
                                        8186   
                                        01/07/2021   
                                        1   
                                        2021   
                                     
                                 
                            
 
                            BrokenWeeks  系统变量设置为 0  表示应用程序使用非中断的周。因此,第一周不需要从 1 月 1 日开始。
                            2020 年第 53 周持续到 2021 年 1 月 2 日,2021 第 1 周从 2021 年 1 月 3 日星期日开始。
                            
                                使用非中断周的 weekyear()  函数范围的图表
                                
                              
                            交易 8181 发生在1月2日,这是第 1 周的一部分。因此,它为 ‘week_year ’ 字段返回 2021 的值。 
                          
                    示例 3 – 图表对象示例  
                    加载脚本和图表表达式 
                            概述
                            使用与第一个 相同的数据集和场景。
                            然而,在本例中,未更改的数据集被加载到应用程序中。返回交易发生年份的周数的计算将在应用程序中的图表中创建为度量 。
                            加载脚本
                            SET BrokenWeeks=1; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
];  
                            结果
                            加载数据并打开工作表。创建新表并将这些字段添加为维度:
                            
                            要计算交易发生的周,请创建以下度量:
                            
                            要根据周数计算交易发生的年份,请创建以下度量:
                            
                            
                                结果表 
                                 
                                 
                                 
                                 
                                
                                    
                                        id   
                                        日期   
                                        周   
                                        week_year   
                                     
                                 
                                
                                    
                                        8176   
                                        12/28/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8177   
                                        12/29/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8178   
                                        12/30/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8179   
                                        12/31/2020   
                                        53   
                                        2020   
                                     
                                    
                                        8180   
                                        01/01/2021   
                                        1   
                                        2021   
                                     
                                    
                                        8181   
                                        01/02/2021   
                                        1   
                                        2021   
                                     
                                    
                                        8182   
                                        01/03/2021   
                                        2   
                                        2021   
                                     
                                    
                                        8183   
                                        01/04/2021   
                                        2   
                                        2021   
                                     
                                    
                                        8184   
                                        01/05/2021   
                                        2   
                                        2021   
                                     
                                    
                                        8185   
                                        01/06/2021   
                                        2   
                                        2021   
                                     
                                    
                                        8186   
                                        01/07/2021   
                                        2   
                                        2021   
                                     
                                 
                            
 
                            通过使用 weekyear()  函数并将日期字段作为函数的参数传递,在前置 Load 语句中创建了 ‘week_year ’ 字段。
                            BrokenWeeks  系统变量设置为 1 ,意味着应用程序使用中断周。周 1 从 1 月 1 日开始。
                            
                                使用中断周的 weekyear()  函数范围的图表
                                
                              
                            交易 8181 发生在1月2日,这是第 1 周的一部分。因此,它为 ‘week_year ’ 字段返回 2021 的值。
                          
                    示例 4 – 场景 
                    加载脚本和结果 
                            概述
                            打开数据加载编辑器,并将下面的加载脚本添加到新部分。 
                            加载脚本包含:
                            
                                
                                    包含 2020 年最后一周和 2021 第一周的一组交易的数据集,该数据集加载到名为 ‘Transactions ’ 的表中。
                                 
                                
                                    BrokenWeeks  变量,设置为 0 。这意味着应用程序将使用非中断周。
                                 
                                
                                    ReferenceDay  变量,设置为 2 。这意味着这一年将从 1 月 2 日开始,1 月至少有两天。
                                 
                                
                                    FirstWeekDay  变量,设置为 1 。这意味着一周的第一天是星期二。
                                 
                             
                            公司的政策是使用中断周。最终用户想要一个按年度列出总销售额的图表。该应用程序使用连续的周,第一周在 1 月至少包含两天。
                            加载脚本
                            SET BrokenWeeks=0; 
SET ReferenceDay=2; 
SET FirstWeekDay=1; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42 
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
];  
                            结果
                            加载数据并打开工作表 。新建表格。 
                            要根据周数计算交易发生的年份,请创建以下度量: 
                            
                            要计算总销售额,请创建以下度量: 
                            
                            将度量的数字格式 设置为金额 。
                            
                                结果表 
                                 
                                 
                                
                                    
                                        weekyear(date)   
                                        =sum(amount)   
                                     
                                 
                                
                                    
                                        2020   
                                        19.42   
                                     
                                    
                                        2021   
                                        373.37