全部展開/全部摺疊  
                     weekday  - 指令碼與圖表函數在此頁面  
                此函數會傳回函下列項目的雙值: 
                
                    如環境變數 DayNames  中所定義的日名稱。  
                    介於 0 至 6 之間且對應於一週中正常日 (0-6) 的整數。  
                 
                語法:    
                weekday( date  [,first_week_day =0]) 
                傳回的資料類型:    雙值
                
                    weekday()  函數判定日期落在哪個星期幾。然後傳回代表該日子的字串值。
                    
                        weekday()  函數的圖表,其傳回日期所在的日子名稱
                        
                      
                    根據一週的開始日期,結果會傳回與星期幾對應的數字值 (0-6)。例如,如果每週第一天設為星期日,星期三即會傳回 3  的數字值。此開始日期由 FirstWeekDay  系統變數 ,或是 first_week_day  函數參數判定。
                    您可以使用此數值作為算術運算式的一部分。例如,乘以 1  可傳回值本身。
                    
                        weekday()  函數的圖表,且具有顯示日子的數字值,而不是日子名稱
                        
                      
                    什麼情況下使用 
                    若您想要按星期幾比較會總,則 weekday()  函數很實用。例如,若您想按工作日比較產品平均銷售額。
                    這些維度 在載入指令碼 建立時可使用函數建立主要行事曆 表格的欄位 ;或是直接在圖表 中建立為計算量值 。
                    
                 
                
                
                    
                        引數 
                         
                        
                         
                        
                        
                            
                         
                        
                            
                                date 
                                 
                                要評估的時間戳記。 
                             
                            
                                first_week_day 
                                 
                                
                                    指定一週開始的日期。如果忽略,將使用變數 FirstWeekDay  的值。
                                    FirstWeekDay  
                                    
                                 
                             
                         
                    
 
                    您可以在 first_week_day  引數中使用下列值設定一週開始的日期:
                    
                        first_week_day 值 
                         
                         
                        
                            
                                日  
                                值  
                             
                         
                        
                            
                                星期一   
                                0   
                             
                            
                                星期二   
                                1   
                             
                            
                                星期三   
                                2   
                             
                            
                                星期四   
                                3   
                             
                            
                                星期五   
                                4   
                             
                            
                                星期六   
                                5   
                             
                            
                                星期日   
                                6   
                             
                         
                    
 
                    區域設定 
                    除非另有說明,否則此主題中的範例皆使用下列日期格式:MM/DD/YYYY。日期格式是在資料載入指令碼的 SET DateFormat  陳述式中指定。由於地區設定和其他因素,您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式,以滿足您的需求。或者,您可以在載入指令碼中變更格式,以符合這些範例。如需詳細資訊,請參閱 修改用於應用程式和指令碼的區域設定  。 
                    應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud  使用者介面中顯示的語言無關。Qlik Cloud  顯示的語言將與您正在使用的瀏覽器相同。
                    若您是應用程式建立者,可以為您建立的應用程式設定預設地區。如需詳細資訊,請參閱Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定  。
                    資訊備註 除非另有說明,否則在這些範例中 FirstWeekDay  會設為 0 。
                    
                        函數範例 
                         
                         
                        
                            
                                範例   
                                結果   
                             
                         
                        
                            
                                weekday('10/12/1971') 
                                 
                                傳回 'Tue' 和 1。 
                             
                            
                                weekday('10/12/1971' , 6) 
                                 
                                
                                    傳回 'Tue' 和 2。
                                     在此範例中,星期日 (6 ) 是一週的第一天。
                                 
                             
                            
                                
                                    SET FirstWeekDay=6;
                                    ... 
                                    
                                    weekday('10/12/1971')
                                 
                                傳回 'Tue' 和 2。   
                             
                         
                    
 
                 
                
                    範例 1 - 工作日字串 
                    載入指令碼和結果  
                            概覽
                            開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。 
                            載入指令碼包含:
                            
                                
                                    包含一組 2022 年交易的資料集 ,這載入到稱為「Transactions 」的表格中。
                                 
                                
                                    設定為 6 (星期日) 的 FirstWeekDay  系統變數。
                                 
                                
                                    設為使用預設日期名稱的 DayNames  變數。
                                 
                                
                                    包含 weekday()  函數的前置載入 ,且設為「week_day 」欄位並傳回交易發生的工作日。
                                 
                             
                            載入指令碼
                            SET DateFormat='MM/DD/YYYY'; 
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; 
SET FirstWeekDay=6; 
 
Transactions: 
    Load 
       *, 
       WeekDay(date) as week_day 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.39 
];  
                            結果
                            載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
                            
                            
                                結果表格 
                                 
                                 
                                 
                                
                                    
                                        id   
                                        日期   
                                        week_day   
                                     
                                 
                                
                                    
                                        8188   
                                        01/01/2022   
                                        星期六   
                                     
                                    
                                        8189   
                                        01/02/2022   
                                        星期日   
                                     
                                    
                                        8190   
                                        01/03/2022   
                                        星期一   
                                     
                                    
                                        8191   
                                        01/04/2022   
                                        星期二   
                                     
                                    
                                        8192   
                                        01/05/2022   
                                        星期三   
                                     
                                    
                                        8193   
                                        01/06/2022   
                                        星期四   
                                     
                                    
                                        8194   
                                        01/07/2022   
                                        星期五   
                                     
                                 
                            
 
                            「week_day 」欄位在前置 LOAD 陳述式中的建立方式是使用 weekday()  函數並傳遞日期欄位,作為函數的引數。
                            weekday()  函數傳回工作日字串值;亦即傳回由 DayNames  系統變數設定的工作日名稱。
                            
                                weekday()  函數的圖表,並為交易 8192 工作日傳回星期三
                                
                              
                            交易 8192 發生在 1 月 5 日。FirstWeekDay  系統變數會將每週第一天設為星期日。weekday()  函數交易發生在星期三並傳回此值,且為 DayNames  系統變數的縮寫形式並位於 week_day  欄位。 
                            「week_day 」欄位中的值在資料行中向右對齊,因為欄位有雙值數字和文字結果 (星期三、3)。若要將欄位值轉換為等同數字的值,欄位即可在 num()  函數內換行。例如在交易 8192 中,星期三值會轉換為數字 3。 
                          
                    範例 2 – first_week_day 
                    載入指令碼和結果  
                            概覽
                            開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。 
                            載入指令碼包含:
                            
                                
                                    包含一組 2022 年交易的資料集,這載入到稱為 Transactions  的表格中。
                                 
                                
                                    設定為 6 (星期日) 的 FirstWeekDay  系統變數。
                                 
                                
                                    設為使用預設日期名稱的 DayNames  變數。
                                 
                                
                                    包含 weekday()  函數的先前載入,且設為「week_day 」欄位並傳回交易發生的工作日。
                                 
                             
                            載入指令碼
                            SET DateFormat='MM/DD/YYYY'; 
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; 
SET FirstWeekDay=6; 
 
Transactions: 
    Load 
       *, 
       WeekDay(date,1) as week_day 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.39 
];  
                            結果
                            載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
                            
                            
                                結果表格 
                                 
                                 
                                 
                                
                                    
                                        id   
                                        日期   
                                        week_day   
                                     
                                 
                                
                                    
                                        8188   
                                        01/01/2022   
                                        星期六   
                                     
                                    
                                        8189   
                                        01/02/2022   
                                        星期日   
                                     
                                    
                                        8190   
                                        01/03/2022   
                                        星期一   
                                     
                                    
                                        8191   
                                        01/04/2022   
                                        星期二   
                                     
                                    
                                        8192   
                                        01/05/2022   
                                        星期三   
                                     
                                    
                                        8193   
                                        01/06/2022   
                                        星期四   
                                     
                                    
                                        8194   
                                        01/07/2022   
                                        星期五   
                                     
                                 
                            
 
                            
                                weekday()  函數的圖表,顯示星期三有 1 的雙值數字值
                                
                              
                            因為 first_week_day  引數在 weekday()  函數中設為 1 ,所以每週第一天是星期二。因此,所有發生在星期二的交易會有 0  的雙值數字值。
                            交易 8192 發生在 1 月 5 日。weekday()  函數識別這是星期三,所以運算式會傳回 1  的雙值數字值。
                          
                    範例 3 – 圖表物件範例  
                    載入指令碼和圖表運算式 
                            概覽
                            開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。 
                            載入指令碼包含:
                            
                            不過,在此範例中,資料集保持不變並且會載入到應用程式中。識別工作日值的計算在應用程式 圖表中建立為量值。
                            載入指令碼
                            SET DateFormat='MM/DD/YYYY'; 
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; 
SET FirstWeekDay=6; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.39 
];  
                            結果
                            載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
                            
                            若要計算工作日值,請建立下列量值:
                            
                            
                                結果表格 
                                 
                                 
                                 
                                
                                    
                                        id   
                                        日期   
                                        =weekday(date) 
                                     
                                 
                                
                                    
                                        8188   
                                        01/01/2022   
                                        星期六   
                                     
                                    
                                        8189   
                                        01/02/2022   
                                        星期日   
                                     
                                    
                                        8190   
                                        01/03/2022   
                                        星期一   
                                     
                                    
                                        8191   
                                        01/04/2022   
                                        星期二   
                                     
                                    
                                        8192   
                                        01/05/2022   
                                        星期三   
                                     
                                    
                                        8193   
                                        01/06/2022   
                                        星期四   
                                     
                                    
                                        8194   
                                        01/07/2022   
                                        星期五   
                                     
                                 
                            
 
                            「=weekday(date) 」欄位在圖表中的建立方式是使用 weekday()  函數並傳遞日期欄位,作為函數的引數。
                            weekday()  函數傳回工作日字串值;亦即傳回由 DayNames  系統變數設定的工作日名稱。
                            
                                weekday()  函數的圖表,並為交易 8192 工作日傳回星期三
                                
                              
                            交易 8192 發生在 1 月 5 日。FirstWeekDay  系統變數會將每週第一天設為星期日。weekday()  函數交易發生在星期三並傳回此值,且為 DayNames  系統變數的縮寫形式並位於 =weekday(date)  欄位。 
                          
                    範例 4 – 情境  
                    載入指令碼和結果 
                            概覽
                            開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。 
                            載入指令碼包含:
                            
                            最終使用者希望圖表按工作日呈現交易的平均銷售額。
                            載入指令碼
                            SET DateFormat='MM/DD/YYYY'; 
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; 
SET FirstWeekDay=6; 
 
Transactions: 
LOAD 
  RecNo() AS id, 
  MakeDate(2022, 1, Ceil(Rand() * 31)) as date, 
  Rand() * 1000 AS amount 
						
Autogenerate(1000);  
                            結果
                            載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
                            
                                
                                    =weekday(date)
                                 
                                
                                    =avg(amount)
                                 
                             
                            將量值的數字格式 設定為金錢 。
                            
                                結果表格 
                                 
                                 
                                
                                    
                                        =weekday(date)   
                                        Avg(amount)   
                                     
                                 
                                
                                    
                                        星期日   
                                        $536.96   
                                     
                                    
                                        星期一   
                                        $500.80   
                                     
                                    
                                        星期二   
                                        $515.63   
                                     
                                    
                                        星期三   
                                        $509.21   
                                     
                                    
                                        星期四   
                                        $482.70   
                                     
                                    
                                        星期五   
                                        $441.33   
                                     
                                    
                                        星期六   
                                        $505.22