Alteryx:从字符串中的范围创建多行

Posted

技术标签:

【中文标题】Alteryx:从字符串中的范围创建多行【英文标题】:Alteryx: Create several rows from a range in a string 【发布时间】:2021-11-09 00:06:59 【问题描述】:

我正在寻找一种将 Alteryx 用于以下数据整理任务的方法。

我有一张这样的桌子:

Var1 Var2
A 1-3
B 0-2

我希望这样:

我有一张这样的桌子:

Var1 Var2
A 1
A 2
A 3
B 0
B 1
B 2

所以我试图“打开”Var2 中的数字列表,并为该范围内的每个可能数字创建一行。

【问题讨论】:

您能否使用 GenerateRows 工具生成从 0 到大于您的 max(Var2) 的某个数字的整数...然后将其加入您的表(笛卡尔积),然后过滤 GeneratedRow >= Var1和 【参考方案1】:

我扩展了@johnjps111 的答案:使用 GenerateRows 工具,但对于Initialization Expression,使用起始值。对于Condition Expression,强制新列(例如“RowCount”)为 RowCount

这种方式不需要加入!

【讨论】:

【参考方案2】:

为了更清楚,初始化表达式应该是这样的:

(regex_replace([var2],"(\d+).*","$1"))

条件表达式类似于:

RowCount <=  tonumber(regex_replace([var2],".*(\d+)$","$1")) 

【讨论】:

以上是关于Alteryx:从字符串中的范围创建多行的主要内容,如果未能解决你的问题,请参考以下文章

基于单个日期从多行创建日期范围

多次编辑多行字符串中的值并创建大量新字符串?

PHP中的多行字符串

从 Json 字符串创建 Python 对象 [重复]

需要使用 Alteryx 或 Pandas 从 excel 列中提取特定文本

如何在 argo 工作流程中的地图中传递多行 json 字符串