mixmatch - 脚本和图表函数
mixmatch 函数用于将第一个参数与所有以下参数进行比较,并返回匹配表达式的数值位置。比较不区分大小写。
Syntax:
mixmatch( str, expr1 [ , expr2,...exprN ])
提示注释如果您要使用区分大小写的比较,可以使用 match 函数。如果您要使用不区分大小写的比较和通配符,可以使用 wildmatch 函数。
下面表格中的第一个表达式为 Stockholm 返回 0,因为 'Stockholm' 未包括在 mixmatch 函数中的表达式列表内。它为 'Zurich' 返回 4,因为 mixmatch 比较要区分大小写。
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 |
您可使用混合匹配来为表达式执行自定义排序。
默认情况下,列按数字或字母排序,具体取决于数据。
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 |
加载脚本
您可使用 mixmatch 以加载数据的子集。例如,您可为函数中的表达式返回数值。然后您可根据数值限制加载的数据。如果没有匹配,Mixmatch 返回 0。在该示例中不匹配的所有表达式将因此返回 0 并且通过 WHERE 语句从数据加载排除。
在数据加载编辑器中,创建名为 Load 的新部分,然后添加以下内容:
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 |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
blue | 5646471 |