2017-06-16 67 views
1

我需要制作包含每个订单代码的每个订单代码,地址,数量和日期在一行中的工作表。 我有订单(地址ID,产品代码,数量和订单ID)的表“数据”,我需要按照特定的顺序将其放在其他表“导出”。有没有办法用函数或脚本来做到这一点?将订单数据过滤到行

我做测试的电子表格,让所有人看到的是什么,我需要预览:test sheet

,比如我有地址ID A001,我需要得到来自该地址标识每个代码和数量,把行,在测试电子表格我做了一个例子。

很抱歉,如果我要求太多,但我需要一些帮助或建议:)

制成图片,以便它会更容易理解: picture

回答

0

你需要的操作称为“逆透视”并有一些可能的解决方案,其中一些是纯功能性的,一些则利用Google Apps脚本。搜索“不透明”来探索它们。这是可能的功能解决方案之一。与您的确切需求相比,它得到了简化,因为我不确定您的标题(“维度”)中哪些是唯一的。我在这里假设只有产品代码和地址标识是唯一的,因为它在数据中看起来像这样。

创建一个新的工作表,并把下面的公式在A1:

=arrayformula(
    split(
    transpose(
     split(
     concatenate(
      arrayformula(Data!$A$5:$A & "|" &Data!$C$3:$G$3 & "\" 
     ) 
     ); 
     "\") 
    ); 
    "|") 
) 

再放入C1另一个公式:

=arrayformula(
    vlookup(A1:A; Data!$A$5:$G; match(B1:B; Data!$C$3:$G$3; 0)+2; 0) 
) 

这会给你如何先构建基本的想法列出所有可能的尺寸值组合(在这种情况下为代码,地址ID),然后使用VLOOKUP填充可能的相关值。然后您可以根据需要使用更多的VLOOKUPS添加更多列。

+0

感谢您的信息! 但atm我有这个公式的错误,因为我有太多的数据(CONCATENATE的文本结果超过了50000个字符的限制) 我该怎么做才能避免它? – Anada

+0

你可以做的一件事就是“分而治之”,即制作几个公式,对数据的不同部分进行操作并加入结果。但我怀疑在这种情况下,研究脚本解决方案可能是值得的。 – ttarchala

+0

我明白了。任何线索如何用脚本语言来做到这一点?不想在许多电子表格中拆分数据:/ – Anada