0

我有一个包含价格数据的宽 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”之类的值的单元格,再次表示最小值和最大值。我通过根据正则表达式拆分它来解决这个问题。可能的解决方案是加入具有相同标题的两列,然后根据我的规则拆分值。但是,这需要我动态检测标题是否重复。

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

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

谢谢

编辑:刚刚有了另一个想法:我将表格转置为具有格式

Product | Date | Price Low | Price High

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

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

4

2 回答 2

1

如果此格式适合您:

Product | Date | Price Low | Price High

然后:
- 将 Product 作为关键字段进行转
置 - 使用选择工具将您的 Name 字段截断为 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
于 2015-10-22T16:11:19.220 回答
0

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

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

您可以在此处查看每个工具的配置。最终结果如下

希望这可以帮助。

问候,

普尔尼玛

于 2015-10-16T22:45:40.203 回答