MID()和FIND()公式将在这里提供帮助:
预期=中间(当前,查找(“ - ”,电流)+1,
其中
MID()和FIND()公式将在这里提供帮助:
预期=中间(当前,查找(“ - ”,电流)+1,
其中
而解决方案提供了@kirillkuznetsov当然可以满足要求,也必须认识到,文本解析功能和文本系列项目通常很容易表现出最佳性能。该计划建议不要尽可能多地使用文本(请参阅规则2.02-04和2.03-02)。
我基于数据格式的猜测是数据来自外部系统。如果可能的话,请尝试在进入Anaplan之前将这些值解析到ELT层中,因为这将使Anaplan能够最佳地执行。
但是,如果不可能,我有一种替代方法可以表现得更好,尤其是如果您要导入的数据集很大。
为了提高此处的性能,您可以利用一个微妙的优势,即将其导入到数字构成订单项中时,将字母数字字段导入Anaplan的方式。实际上有一个有关社区的最新帖子对这个。
对于下面的示例,我将假设您希望最终输出的数字格式。让我们比较两个选项之间的性能。
选项1:文字操纵
将值作为文本导入,并使用查找,中间和值以获得最终结果。
蓝图:
网格视图:
选项2:字母数字导入为数字
导入为数字(由于上述巧妙的微妙而导致值为-123),然后使用ABS()将值转换为正。您也可以做价值*( - 1),但是我在这里选择ABS()作为额外的保障措施,以抵抗可能缺少连字符的值。
蓝图:
网格视图:
性能比较
我设置了一个基于最终结果的测试模型,该测试模型没有任何其他计算,并且我在CSV文件中嘲笑了一个1M项目的数据集,在上面的两个示例中使用了相同的文件。
使用简单的秒表测试:
选项1:9s
选项2:7s
因此,即使在这个简单的测试中,我们也可以看到,即使导入文件和最终结果完全相同,导入也将在第二种情况下运行更快。进一步注意到,当您在这些构造上构建更多下游逻辑时,性能问题可能会进一步复杂,因此我们希望对文本非常谨慎。文本总是会较慢,因此我们应该尽其所能避免它,在这种情况下,我们可以!