mixmatch - スクリプトおよびチャート関数
mixmatch 関数は、最初のパラメーターとそれに続くすべてのパラメーターを比較し、一致した数式の数値の場所を返します。比較では大文字と小文字は区別されず、日本語のひらがなとカタカナも区別されません。
構文:
mixmatch( str, expr1 [ , expr2,...exprN ])
代わりに大文字と小文字を区別して比較する場合は、match 関数を使用します。大文字と小文字を区別せずにワイルドカードを使用して比較する場合は、wildmatch 関数を使用します。
このトピックの例のいくつかは、インライン ロードを使用しています。詳細については、「インライン ロードを使用したデータのロード」を参照してください。
例 - mixmatch を使用したロード スクリプト
ロード スクリプト
mixmatch を使用してデータのサブセットをロードできます。たとえば、関数内の数式の数値を返すことができます。次に、その数値に基づいて、ロードされるデータを制限できます。一致がない場合、Mixmatch は 0 を返します。よって、この例に適合しないすべての数式は 0 を返し、WHERE ステートメントによるデータ ロードから除外されます。
データ ロード エディタで新しいタブを作成し、次のデータをインライン ロードとしてロードします。結果を確認するには、以下の Qlik Sense のテーブルを作成します。
Load * Inline [ transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code 3750, 20180830, 23.56, 2, 2038593, L, Red 3751, 20180907, 556.31, 6, 203521, m, orange 3752, 20180916, 5.75, 1, 5646471, S, blue 3753, 20180922, 125.00, 7, 3036491, l, Black 3754, 20180922, 484.21, 13, 049681, xs, Red 3756, 20180922, 59.18, 2, 2038593, M, Blue 3757, 20180923, 177.42, 21, 203521, XL, Black ]; /* Create new table called Transaction_Buckets Create new fields called Customer, and Color code - Black, Blue, blue Load Transactions table. Mixmatch returns 1 for 'Black', 2 for 'Blue'. Also returns 3 for 'blue' because mixmatch is not case sensitive. Only values that returned numeric value greater than 0 are loaded by WHERE statement into Transactions_Buckets table. */ Transaction_Buckets: Load customer_id, customer_id as [Customer], color_code as [Color Code - Black, Blue, blue] Resident Transactions Where mixmatch(color_code,'Black','Blue') > 0;
結果
Color Code Black, Blue, blue | Customer |
---|---|
ブラック | 203521 |
ブラック | 3036491 |
青 | 2038593 |
blue | 5646471 |
例 - mixmatch を使用したチャートの数式
データ ロード エディタで新しいタブを作成し、次のデータをインライン ロードとしてロードします。データをロードした後、以下のチャートの数式の例を Qlik Sense テーブルに作成します。
チャートの数式 1
MyTable: Load * inline [Cities, Count Toronto, 123 Toronto, 234 Toronto, 231 Boston, 32 Boston, 23 Boston, 1341 Beijing, 234 Beijing, 45 Beijing, 235 Stockholm, 938 Stockholm, 39 Stockholm, 189 zurich, 2342 zurich, 9033 zurich, 0039];
以下のテーブルの最初の数式は Stockholm の場合に 0 を返します。これは、mixmatch 関数の数式のリストに「Stockholm」が含まれていないからです。mixmatch 比較では大文字と小文字が区別されないため、「Zurich」の場合には 4 を返します。
Cities | mixmatch( Cities,'Toronto','Boston','Beijing','Zurich') | mixmatch( Cities,'Toronto','Boston','Beijing','Stockholm','Zurich') |
---|---|---|
Beijing |
3 |
3 |
Boston | 2 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 4 | 5 |
チャートの数式 2
mixmatch を使用して、1 つの数式のカスタム ソートを実行できます。
既定では、データに応じて、列がアルファベットまたは数値順にソートされます。
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
順序を変更するには、以下のステップを実行します。
- プロパティ パネルで、グラフの [ソート] セクションを開きます。
- カスタム ソートを適用する列の自動ソートをオフにします。
- [数値によるソート] と [アルファベット順でソート] の選択を解除します。
-
[数式によるソート] を選択し、次の数式を入力します。
=mixmatch( Cities, 'Toronto','Boston','Beijing','Stockholm','Zurich')
Cities 列のソート順序が変更されます。
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
返される数値を表示することもできます。
Cities | Cities & ' - ' & mixmatch ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','Zurich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |