Qlik Community

Qlik Japan

Qlik Communityの日本語のグループです。 Qlik製品に関する日本語資料のダウンロードや質問を日本語で投稿することができます。質問に関する回答は基本的に日本語で行われます。 日本語資料はグループにJoinしなくてもダウンロード可能ですが、 質問を投稿したい場合は、CommunityへのログインをしてグループにJoin Requestを行って下さい。 承認を受けた後に質問を投稿することが可能になります。 ログインはQlikIDを登録してください。

Not applicable

文字列の置換えで良い方法を教えて下さい

ソースの項目でリロード時に文字列の置換えをしようと思い、

ロードスクリプトにて多重IF文にて項目内の値に応じて文字列の置換えをするようにしました。

コード   コード名

 

 01     新規

 

 02     変更

 

  ・       ・

  ・       ・

コード数分だけIF文が多重化しましたが、エラーも出ずに思うような結果が得られました。

が、このような読み込み時の文字列置き換えに関して、

もっと効率の良いスクリプトの記述があるようでしたら教えて下さい。

1 Solution

Accepted Solutions
Partner
Partner

Re: 文字列の置換えで良い方法を教えて下さい

load * inlineのinlineの部分についてはfromと同じだって思って下さい。

そのため、

load 項目A

       項目B

       right(項目C,2) as ○○

       inline

       [項目D,項目E

        01,新規

        02,変更],

       項目F

だとfromで取り込むデータを指定した後に項目名を書いてることになるので、エラーになります。

最終的にやりたいことが理解していないので、正しいかはわかりませんが、

load 項目A,項目B,right(項目C,2) as ○○

from ○○.xls;

load 項目D,

       項目E

       inline

       [項目D,項目E

        01,新規

        02,変更],

みたいにインラインロードはインラインロードのテーブルとして記述する必要があります。

またinline以下で作成した項目がloadの後に記述しないと指定した項目がありません

みたいなエラーになります。

View solution in original post

6 Replies
Highlighted
Employee
Employee

Re: 文字列の置換えで良い方法を教えて下さい

たしかにIFのネストが深くなってしまうとわかりずらいですね。

変換ルールを定義した変換テーブルを作成して、それをロードスクリプトに読み込むようにしたらいかがでしょうか。

ご質問の例ですと、コードとコード名があるテーブルをつくれば、コードで取引データなどの変換したテーブルと連結されるつくりになると思います。また、変換内容が大量でなく簡便なテーブルでよければ、インラインテーブル(ロードスクリプト内で簡易的に作成・変更可能)に作れると思います。

インラインテーブルは、ロードスクリプトのメニューから、挿入>Loadステートメント>インラインロードで作成できます。

Not applicable

Re: 文字列の置換えで良い方法を教えて下さい

回答ありがとうございます。

が、ヘルプで「インラインロード」を参照しましたが、よく利用法が理解できません。

もう少し詳しく教えて頂けませんか?

Partner
Partner

Re: 文字列の置換えで良い方法を教えて下さい

インラインロードはロードスクリプト分でデータを作成する方法です。

記述例を書きます。

---------------------------------------

load * inline

[

項目A,項目B,項目C

あああ,かかか,さささ

いいい,ききき,ししし

ううう,くくく,すすす

];

---------------------------------------

上記みたいに、load * inlineで[]の中に作成するデータを「,(カンマ)」区切りで

書きます。

load の後の*はワイルドカードの意味で作成した項目全てをロードって意味に

なります。

なので、作成した項目を関数とかでいじる場合は、

load 項目A

       項目B

       right(項目C,2) as ○○

inline

[];

みたいな書き方もできます。

Not applicable

Re: 文字列の置換えで良い方法を教えて下さい

回答ありがとうございます。

load 項目A

       項目B

       right(項目C,2) as ○○

inline

[];

のような使い方をしたいのですが、具体的には

項目D(コード値)

フィールドには無い項目E(コード名)

例えば

 

 項目D='01' なら 項目Eとして「新規」

 項目D='02' なら 項目Eとして「変更」

   ・

   ・

load 項目A

       項目B

       right(項目C,2) as ○○

       inline

       [項目D,項目E

        01,新規

        02,変更],

       項目F

    ・

こんな感じで良いのでしょうか?

と言いながら実行したらエラーでしたが...

どのような書き方になるのでしょうか?

Partner
Partner

Re: 文字列の置換えで良い方法を教えて下さい

load * inlineのinlineの部分についてはfromと同じだって思って下さい。

そのため、

load 項目A

       項目B

       right(項目C,2) as ○○

       inline

       [項目D,項目E

        01,新規

        02,変更],

       項目F

だとfromで取り込むデータを指定した後に項目名を書いてることになるので、エラーになります。

最終的にやりたいことが理解していないので、正しいかはわかりませんが、

load 項目A,項目B,right(項目C,2) as ○○

from ○○.xls;

load 項目D,

       項目E

       inline

       [項目D,項目E

        01,新規

        02,変更],

みたいにインラインロードはインラインロードのテーブルとして記述する必要があります。

またinline以下で作成した項目がloadの後に記述しないと指定した項目がありません

みたいなエラーになります。

View solution in original post

Not applicable

Re: 文字列の置換えで良い方法を教えて下さい

回答ありがとうございます。

読み込み「load」文内で指定するものかと勘違いしていました。

load文の後(データ読み込み後)、にinlineにて文字列置換するのですね。

思うようにデータが取得できました。

ただ、この文字列置換(コード値をコード名に置き換えする)を他の読み込みでも共有したいのですが、都度、同じ内容をコピペするしかありませんか?

他に良い共有方法はありますか?