如何使用 Alteryx 解决 excel 文件中的重复列名?

How to resolve duplicate column names in excel file with Alteryx?

我有一个包含价格数据的宽 excel 文件,看起来像这样

Product | 2015-08-01 | 2015-09-01 | 2015-09-01 | 2015-10-01
ABC     | 13         | 12         | 15         | 14
CDE     | 69         | 70         | 71         | 67
FGH     | 25         | 25         | 26         | 27

日期 2015-09-01 可以找到两次,这在上下文中是有效的,但显然打乱了我的工作流程。 可以理解为第一个值是最低价,第二个是最高价。如果只有一列,则min和max相同

有办法解决这个问题吗?

我的想法如下: 我也有包含像“38 - 42”这样的值的单元格,再次指示最小值和最大值。我通过基于 Regex 表达式拆分它来解决这个问题。可能的解决方案是连接两个具有相同 header 的列,然后根据我的规则拆分值。但是,如果 header 是重复的,那将需要我动态检测。

这在 Alteryx 中是可行的还是有更简单的解决方案来解决这个问题?

当然,不幸的是,要求文件的供应商更改它并不是一个真正的选择。

谢谢

编辑: 刚刚有了另一个想法: 我转置 table 格式

Product | Date | Price Low | Price High

因此,如果我可以检查 table 中的重复项并以某种方式将这些记录合并为一个记录,那也可以解决问题。

编辑2: 由于我似乎没有说清楚,我的最终结果应该看起来像 EDIT1 中转置的 table 。如果只有一个值,它应该放在 "Price Low" 中(然后我可能会把它复制到 "Price High" 中。如果有两个值,它们应该放在相应的列中。@Poornima 的建议解决了重复问题以比在列名称后面放置“_2”更复杂的形式发出问题,但不会将值放入所需的列中。

对于这个问题,您可以利用 Alteryx 9.1 中可用的原生 Excel (.xlsx) driver。如果 Excel 中的多个列使用相同的字符串,则它们将由本机 driver 重命名,并在末尾添加下划线,例如 2015-09-01,2015-09-01_1。利用这一点,我们可以分三步重新格式化数据:

  1. 正如您所建议的,我们首先转置数据,以便我们可以利用 header 列。
  2. 然后我们可以使用公式工具编写一个公式,根据 header 长度评估日期的列 header 是第一个还是最后一个。
  3. 最后一步是将数据恢复为与以前相同的格式,这可以通过交叉表工具进行。

您可以查看每个工具的配置 here. The end result would be as follows

希望这对您有所帮助。

此致,

可怜

如果这种格式适合您:

Product | Date | Price Low | Price High

然后:
- 以产品为关键字段进行转置
- 使用 select 工具将您的姓名字段截断为 10 个字符。这将删除 Alteryx 自动重命名的任何 _2 值。
- 总结:
按产品分组
按名称分组
然后对值应用最小和最大操作。

结果是:

Product  |  Name       |  Min_Value  |  Max_Value  
ABC      |  2015-08-01 |  13         |  13
ABC      |  2015-09-01 |  12         |  15
ABC      |  2015-10-01 |  14         |  14