Qliksense 转换脚本

问题描述 投票:0回答:1

我想在 QlikSense 脚本中转换我的数据,其中每列中的数据类似于“��345”,我想删除此 �� 数据并将数据转换为每列中有意义的数据。

如何一次转换所有列,以便一次从所有列中删除 �� 数据?

qliksense
1个回答
0
投票

我认为首先您必须找到隐藏在

符号后面的字符编号。为此,您可以使用 ord() 函数。

Ord
函数将从给定的字符返回 uniconde 字符数。例如:
Ord('A')
将返回
65
Ord('B')
将返回
66

您可以从您的字段中获取第一个字符并确定其编号。比如:

从您的字段中选择单个值。创建一个简单的文本框并使用类似的措施:

Ord( left(MyField, 1) )

一旦识别出角色编号,您就可以返回脚本。

假设我们想要用空字符串替换

A
的所有实例:

// create variable that will hold the replace function
// the $1 is representing the first parameter passed to the function
set vClear = replace($1, chr(65), '');

RawData:
Load    
    Temp, // keep Temp just as a reference
    // Call the variable/function vClear
    // on each row that is being loaded
    $(vClear(Temp)) as ClearedTemp,
;
Load
    'ABCDXYZ' as Temp
AutoGenerate 1
;

应用程序重新加载后,

ClearedTemp
的值将是
BCDXYZ
A
被替换为空字符串)

这种方法可以应用于您想要/需要的许多领域。

附注

后面可能隐藏着多个不同的字符。你必须弄清楚是否有多个角色或者总是同一个角色。如果有多个特征,那么您必须扩展
vClear
定义并多次调用
replace

P.S.1 如果应该应用该函数的字段太多,那么我们可能可以使用一些自动化来创建所需的脚本。但这将使当前的示例变得复杂,这就是为什么我没有在这个答案中包含这种方法

© www.soinside.com 2019 - 2024. All rights reserved.