SubField  - スクリプトおよびチャート関数このページ上  
                 
SubField() は、元のレコード項目が区切り文字で区切られた複数の部分で構成されている文字列項目からサブストリング部分を抽出するために使用されます。 
 
                Subfield()  関数は、フルネームで構成されるレコードのリストからファースト ネームと姓、パス名のコンポーネント パーツを抽出したり、コンマ区切りのテーブルからデータを抽出したりするために使用できます。
                LOAD  ステートメントで、オプションの field_no  パラメータを省略して、Subfield()  関数を使用する場合、サブストリングごとに完全な 1 つのレコードが生成されます。Subfield() を使用してを複数の項目がロードされる場合、すべての組み合わせのデカルト積が作成されます。
                構文:    
                SubField( text, 
delimiter[, field_no ]) 
                戻り値データ型:   文字列
                引数:    
                
                    引数 
                     
                    
                     
                    
                    
                        
                     
                    
                        
                            
                                text 
                             
                            元の文字列。これは、ハードコードされたテキスト、変数、ドル記号展開、またはその他の数式となります。 
                         
                        
                            
                                delimiter 
                             
                            文字列をコンポーネント パーツに分割する入力 text  内の文字。 
                         
                        
                            
                                field_no 
                             
                            
                                オプションの 3 番目の引数は、親文字列 text  のサブストリングのどれが返されるかを指定する整数です。値 1 を使用すると最初のサブストリングが返され、値 2 を使用すると 2 番目のサブストリングが返されます。値 3 以降も同様です。 
                                
                                    field_no  が正の値の場合、サブストリングは左から右に抽出されます。 
                                    field_no  が負の値の場合、サブストリングは右から左に抽出されます。 
                                 
                             
                         
                     
                
 
                ヒント メモ 
                    SubField()  は、Len() 、Right() 、Left() 、Mid() 、およびその他の文字列関数など、複雑な関数の組み合わせの代わりに使用することができます。
                
                    例: チャートの数式 
                     
                    
                     
                    
                    
                        
                     
                    
                        
                            SubField(S,   ';' ,2) 
                             
                            S  が 'abc;cde;efg'  の場合、'cde'  を返します。 
                         
                        
                            SubField(S,   ';' ,1) 
                             
                             S  が空の文字列の場合、空の文字列を返します。 
                         
                        
                            SubField(S,   ';' ,1) 
                             
                            S  が ';'  の場合、空の文字列を返します。 
                         
                        
                            
                                
                                    vMyPath  というパス名を持つ変数があるとすると、 
                                Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps; 。
                                 
                             
                            テキストと画像チャートで、メジャーのSubField(vMyPath, '\',-3 )  などを追加できます。これは、変数 vMyPath  の右端から 3 番目のサブ文字列であるため、「Qlik 」を返します。 
                         
                     
                
 
                例: SubField を使用するスクリプトとチャートの数式 
                例 - スクリプトとチャートの数式 
                        基本的な例 
                        
                             
                            
                             
                            
                            
                                
                             
                            
                                
                                    SubField(S,   ';' ,2) 
                                     
                                    S  が 'abc;cde;efg'  の場合、'cde'  を返します。 
                                 
                                
                                    SubField(S,   ';' ,1) 
                                     
                                     S  が空の文字列の場合、空の文字列を返します。 
                                 
                                
                                    SubField(S,   ';' ,1) 
                                     
                                    S  が ';'  の場合、空の文字列を返します。 
                                 
                                
                                    
                                        
                                            vMyPath  というパス名を持つ変数があるとすると、 
                                        Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps; 。
                                         
                                     
                                    テキストと画像チャートで、メジャーのSubField(vMyPath, '\',-3 )  などを追加できます。これは、変数 vMyPath  の右端から 3 番目のサブ文字列であるため、「Qlik 」を返します。 
                                 
                             
                        
 
                        スクリプト例 1 
                        ロード スクリプト 
                        データ ロード エディターで、以下のスクリプト式とデータをロードします。
                        FullName:
					
LOAD * inline [
Name
'Dave Owen'
'Joe Tem'
];
SepNames:
Load Name,
SubField(Name, ' ',1) as FirstName,
SubField(Name, ' ',-1) as Surname
Resident FullName;
Drop Table FullName;
 
                        ビジュアライゼーションの作成 
                        Qlik Sense  シートに、[Name ]、[FirstName ]、[SurName ] を軸としたテーブルのビジュアライゼーションを作成します。
                        結果 
                        
                             
                            
                             
                            
                             
                            
                            
                                
                                    Name 
                                    FirstName 
                                    SurName 
                                 
                             
                            
                                
                                    Dave Owen 
                                    Dave 
                                    Owen 
                                 
                                
                                    Joe Tem 
                                    Joe 
                                    Tem 
                                 
                             
                        
 
                        説明 
                        [SubField() ] 関数は、[field_no ] 引数を 1 に設定することで、[Name ] の最初のサブ文字列を抽出します。[field_no ] の値は正なので、左から右の順にサブ文字列が抽出されます。2 番目の関数呼び出しでは、[field_no ] 引数を -1 にすることで、右から左の順に 2 番目のサブ文字列を抽出します。
                        スクリプト例 2 
                        ロード スクリプト 
                        データ ロード エディターで、以下のスクリプト式とデータをロードします。
                        LOAD DISTINCT
Instrument,
SubField(Player,',') as Player,
SubField(Project,',') as Project;
Load * inline [
Instrument|Player|Project
Guitar|Neil,Mike|Music,Video
Guitar|Neil|Music,OST
Synth|Neil,Jen|Music,Video,OST
Synth|Jo|Music
Guitar|Neil,Mike|Music,OST
] (delimiter is '|');
 
                        ビジュアライゼーションの作成 
                        Qlik Sense  シートに [Instrument ]、[Player ]、[Project ] を軸としたテーブルのビジュアライゼーションを作成します。
                        結果 
                        
                             
                            
                             
                            
                             
                            
                            
                                
                                    Instrument 
                                    Player 
                                    Project 
                                 
                             
                            
                                
                                    Guitar 
                                    Mike 
                                    Music 
                                 
                                
                                    Guitar 
                                    Mike 
                                    Video 
                                 
                                
                                    Guitar 
                                    Mike 
                                    OST 
                                 
                                
                                    Guitar 
                                    Neil 
                                    Music 
                                 
                                
                                    Guitar 
                                    Neil 
                                    Video 
                                 
                                
                                    Guitar 
                                    Neil 
                                    OST 
                                 
                                
                                    Synth 
                                    Jen 
                                    Music 
                                 
                                
                                    Synth 
                                    Jen 
                                    Video 
                                 
                                
                                    Synth 
                                    Jen 
                                    OST 
                                 
                                
                                    Synth 
                                    Jo 
                                    Music 
                                 
                                
                                    Synth 
                                    Neil 
                                    Music 
                                 
                                
                                    Synth 
                                    Neil 
                                    Video 
                                 
                                
                                    Synth 
                                    Neil 
                                    OST 
                                 
                             
                        
 
                        説明 
                        この例では、Subfield()  関数の複数のインスタンスを、すべての組み合わせのデカルト積を作成する同じ LOAD  ステートメント内から field_no  パラメータを除外して使用する方法を示しています。DISTINCT  オプションを使用すると、レコードの複製が作成されるのを避けることができます。