SubField - スクリプトおよびチャート関数このページ上
SubField() は、元のレコード項目が区切り文字で区切られた複数の部分で構成されている文字列項目からサブストリング部分を抽出するために使用されます。
Subfield() 関数は、フルネームで構成されるレコードのリストからファースト ネームと姓、パス名のコンポーネント パーツを抽出したり、コンマ区切りのテーブルからデータを抽出したりするために使用できます。
LOAD ステートメントで、オプションの field_no パラメータを省略して、Subfield() 関数を使用する場合、サブストリングごとに完全な 1 つのレコードが生成されます。Subfield() を使用してを複数の項目がロードされる場合、すべての組み合わせのデカルト積が作成されます。
構文:
SubField( text,
delimiter[, field_no ])
戻り値データ型: string
引数:
引数
text
元の文字列。これは、ハードコードされたテキスト、変数、ドル記号展開、またはその他の数式となります。
delimiter
文字列をコンポーネント パーツに分割する入力 text 内の文字。
field_no
オプションの 3 番目の引数は、親文字列 text のサブストリングのどれが返されるかを指定する整数です。値 1 を使用すると最初のサブストリングが返され、値 2 を使用すると 2 番目のサブストリングが返されます。値 3 以降も同様です。
field_no が正の値の場合、サブストリングは左から右に抽出されます。
field_no が負の値の場合、サブストリングは右から左に抽出されます。
ヒント メモ
SubField() は、Len() 、Right() 、Left() 、Mid() 、およびその他の文字列関数など、複雑な関数の組み合わせの代わりに使用することができます。
例: 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 オプションを使用すると、レコードの複製が作成されるのを避けることができます。