首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google脚本Transpose & Cartesian产品

Google脚本Transpose & Cartesian产品
EN

Stack Overflow用户
提问于 2022-04-15 15:03:50
回答 1查看 47关注 0票数 0

我一直在为Google中的项目资源管理建立一个解决方案。这样做的想法是,团队经理将每周在一行上输入每个项目的资源需求。对于最终用户来说,这是一个非常友好和简单的解决方案。有关输入表的描述,请参见下面的图像。板材

由于我的组织有多个团队,我们希望每个团队都有一个单独的表格。为了保持报告的集中化,我已经将每个工作表连接到BigQuery中,在这里,我将来自不同工作表的数据组合在一起,并最终在Power中创建报表。

目前,我正在使用混合的google功能,如查询、ARRAYFORMULA、SPLIT、平面化等,将数据转换为数据库合适的格式,如下图所示。为了将数据保存在数据库中,我需要将数据从水平格式转换为垂直格式。板材

我目前的问题是,大约有300行和100列,此时,一个简单的google功能变得太重,无法运行。我现在正在寻找一个解决方案来使用应用程序脚本进行处理,如果这将被证明是一个更有效的解决方案,并且允许我为脚本运行的频率添加一些逻辑。

亲爱的专家们,你们认为这样的事情在应用程序脚本中是可以做到的吗?我们应该怎么做呢?我有一些编码经验,但我是新的应用程序脚本。我正在挣扎,特别是在生产笛卡尔产品,这将使我能够联系日期与需求。

我已经添加了一个链接到我的例子工作表下面。

到工作表的链接:Nl2DN-h-8/编辑?usp=共享

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-15 15:26:21

使用{数组表达式,如下所示:

代码语言:javascript
复制
=arrayformula( query( 
  { 
    Input_Sheet!B2:D2 \ "Date" \ "Demand";
    flatten( iferror(Input_Sheet!E3:H / 0; Input_Sheet!B3:B) ) \ 
    flatten( iferror(Input_Sheet!E3:H / 0; Input_Sheet!C3:C) ) \ 
    flatten( iferror(Input_Sheet!E3:H / 0; Input_Sheet!D3:D) ) \ 
    flatten( to_date( iferror(Input_Sheet!E3:H / 0; Input_Sheet!E2:H2) ) ) \
    flatten(Input_Sheet!E3:H) 
  }; 
  "where Col5 is not null 
   order by Col1"; 
  1 
) )

这不是笛卡尔积。它更像是不枢轴。

请参阅示例电子表格中的新解决方案表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71885663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档