# KeepChar スクリプトおよびチャート関数

は、2 番目の文字列に一致する最初の文字列の文字のいずれかで構成された文字列を返します。この関数では大文字と小文字が区別されます。

構文:

KeepChar(text, keep\_chars)

戻り値データ型： 文字列

引数

| 引数 | 説明 |
| --- | --- |
| text | 元の文字列。 |
| keep\_chars | text に保持される文字を含む文字列。この引数では大文字と小文字が区別されます。 |

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `KeepChar ( 'a1b2c3','123' )` | `123` を返します |
| `KeepChar  ( 'a1b2c3','1234' )` | `123` を返します |
| `KeepChar  ( 'a1b22c3','1234' )` | `1223` を返します |
| `KeepChar( 'a1b2c3','312' )` | `123` を返します |

## 例 - KeepChar の基本

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/KeepChar.htm)

#### チャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 

  「`Example`」というデータ テーブルにロードされるデータセット。

* 

  データ テーブル内の次の項目:

  * `InputText`、処理される元のテキスト文字列を含みます。

  * `CharsToKeep`、処理後に元のテキスト文字列から保持する文字のリストを含みます。

ロード スクリプト

```
Example:
Load * inline [
InputText, CharsToKeep
'a1b2c3', '123'
'a^b^c', 'abc'
'A^b^c', 'abc'
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* `InputText`
* `CharsToKeep`

次の計算軸を作成します。

* `=KeepChar(InputText, CharsToKeep)`、`CharsToKeep` 内の文字と一致する `InputText` 内の文字を計算します。

結果テーブル

| InputText | CharsToKeep | KeepChar(InputText, CharsToKeep) |
| --- | --- | --- |
| a1b2c3 | 123 | 123 |
| a^b^c | abc | abc |
| A^b^c | abc | bc |

`KeepChar(InputText, CharsToKeep)` 列は、`CharsToKeep` の文字と完全に一致する`InputText` の文字のみを返します。例えば、3行目は `CharsToKeep` の文字が `InputText` の文字と一致する唯一の文字であるため、`bc` を返します。`CharsToKeep` の項目は小文字のみなので、大文字の `A` は返されません。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/KeepChar.htm)

#### ロード スクリプト

次のコードは、ロード スクリプトで関数を使用する方法を示しています。

```
Example:
Load
*,
keepchar(String1, String2) as KeepChar;
Load * inline [
String1, String2
'a1b2c3', '123'
];
```

結果テーブル

| String1 | String2 | KeepChar |
| --- | --- | --- |
| a1b2c3 | 123 | 123 |

## 例 - 非構造化テキストを解析する KeepChar のシナリオ

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/KeepChar.htm)

#### チャートの数式

概要

この例では、関数を使用して、非構造化テキスト (文字、数字、記号文字) を解析し、数値文字のみを保持する構造化された出力を生成します。

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 

  「`Example`」というデータ テーブルにロードされるデータセット。

* 

  データ テーブル内の次の項目:

  * `InputText`、処理される元のテキスト文字列を含みます。

  * `CharsToKeep`、処理後に元のテキスト文字列から保持する文字のリストを含みます。

ロード スクリプト

```
Example:
Load * inline [
InputText, InputCategory, CharsToKeep
'The numeric code for input processing is 123-456|789.', 'Code', '0123456789'
'Delivery of batch number: 333*456789.', 'Batch', '0123456789'
'Find the goods received in bay 16a', 'Bay', '0123456789'
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* `InputText`
* `CharsToKeep`

次の計算軸を作成します。

* `=KeepChar(InputText, CharsToKeep)`、`CharsToKeep` 内の文字と一致する `InputText` 内の文字を計算します。

結果テーブル

| InputText | CharsToKeep | KeepChar(InputText, CharsToKeep) |
| --- | --- | --- |
| バッチ番号の配信: 333\*456789 | 0123456789 | 333456789 |
| ベイ 16a で受け取った商品を見つける | 0123456789 | 16 |
| 入力処理の数値コードは 123-456\|789 です | 0123456789 | 123456789 |

`KeepChar` 関数の出力を、スクリプトにロードされた元の `InputText` 文字列値と比較します。`KeepChar` 関数により、入力テキストから数字以外の文字がすべて正常に削除されました。

## 詳細を見る

* [PurgeChar スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/PurgeChar.htm)