【问题标题】:Filter order data to rows将订单数据过滤到行
【发布时间】:2017-06-16 11:22:14
【问题描述】:

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

我制作了测试电子表格,这样每个人都可以看到我需要的预览:test sheet

例如我有地址 ID A001,我需要从这个地址 ID 中获取每个代码和数量并放入行中,在我制作的测试电子表格中。

对不起,如果我问的太多,但我需要一些帮助或建议 :)

制作图片以便于理解: picture

【问题讨论】:

    标签: google-sheets spreadsheet google-docs


    【解决方案1】:

    您需要的操作称为“unpivot”,它有几个可能的解决方案,其中一些纯粹是功能性的,一些使用 Google Apps 脚本。搜索“unpivot”来探索它们。这是一种可能的功能解决方案。与您的精确需求相比,它被简化了,因为我不确定您的哪个标题(“维度”)是唯一的。我在这里假设只有产品代码和地址 id 是唯一的,因为它在数据中看起来像这样。

    制作一个新的工作表并将下面的公式放入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 添加更多列。

    【讨论】:

    • 感谢您的信息!但是 atm 我对这个公式有错误,因为我有太多的数据(CONCATENATE 的文本结果超过了 50000 个字符的限制)我该怎么做才能避免它?
    • 您可以做的一件事是“分而治之”,即制作多个公式,对数据的不同部分进行运算并合并结果。但我怀疑在这种情况下,研究脚本解决方案可能是值得的。
    • 我明白了。任何线索如何用脚本语言做到这一点?不想在许多电子表格中拆分数据:/
    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多