Google sheets 动态重组googlesheets数据

Google sheets 动态重组googlesheets数据,google-sheets,Google Sheets,我目前正在使用Google Sheets从Wordpress中的联系人表单7导入数据。所有的数据都很好,但我想看看如何以更加用户友好的方式格式化它。我简化了一点示例,但是我创建的表单的要点允许用户根据需要请求具有不同措辞的图形文件的多个版本,最多5个(为了简单起见,我的示例只有2个) 所有数据都是使用CF7变量导入的,理想情况下,我想稍微清理一下。我所想到的解决方案是创建第二张图纸,将第一张图纸中提交的数据拉入一种更方便用户的格式,因为我打算将其用作设计师的工作表单,以便在收到数据后创建所需的

我目前正在使用Google Sheets从Wordpress中的联系人表单7导入数据。所有的数据都很好,但我想看看如何以更加用户友好的方式格式化它。我简化了一点示例,但是我创建的表单的要点允许用户根据需要请求具有不同措辞的图形文件的多个版本,最多5个(为了简单起见,我的示例只有2个)

所有数据都是使用CF7变量导入的,理想情况下,我想稍微清理一下。我所想到的解决方案是创建第二张图纸,将第一张图纸中提交的数据拉入一种更方便用户的格式,因为我打算将其用作设计师的工作表单,以便在收到数据后创建所需的图形。对于每个请求,名称/部门/电子邮件/日期都保持不变,但我想在另一行显示版本以及第1行和第2行数据。是否可以动态地重新组织数据,以便在提交新表单并将数据添加到工作表1时,工作表2将使用正确格式的信息进行更新

这可能吗?我在网上看了一些东西,但没有任何与这种类型的数据操作相关的东西

解决方案: 下面是我的例子的最终效果

=ArrayFormula(QUERY({
Sheet1!A2:D,Sheet1!E2:G,ROW(Sheet1!A2:A);
IFERROR(LEN(Sheet1!A2:D)/0),Sheet1!H2:J,ROW(Sheet1!A2:A);
IFERROR(LEN(Sheet1!A2:D)/0),Sheet1!K2:M,ROW(Sheet1!A2:A);
IFERROR(LEN(Sheet1!A2:D)/0),Sheet1!N2:P,ROW(Sheet1!A2:A);
IFERROR(LEN(Sheet1!A2:D)/0),Sheet1!Q2:S,ROW(Sheet1!A2:A)
},"select Col1,Col2,Col3,Col4,Col5,Col6,Col7 where Col5<>'' order by Col8",1))
=数组公式(查询({
活页1!A2:D,活页1!E2:G,世界其他地区(活页1!A2:A);
IFERROR(LEN(Sheet1!A2:D)/0),Sheet1!H2:J,世界其他地区(Sheet1!A2:A);
IFERROR(长(图1!A2:D)/0),图1!K2:M,世界其他地区(图1!A2:A);
IFERROR(LEN(Sheet1!A2:D)/0),Sheet1!N2:P,世界其他地区(Sheet1!A2:A);
IFERROR(LEN(Sheet1!A2:D)/0),Sheet1!Q2:S,世界其他地区(Sheet1!A2:A)
},“选择列1、列2、列3、列4、列5、列6、列7,其中列5“按列8排序”,1))
是的,这是可能的

一种方法是使用数组和查询函数

为了简单起见,让我们这样说吧

  • A列和B列包含订单的一般信息
  • 列C和D具有版本1的数据
  • 列E和F具有版本2的数据
  • 列G和H具有版本3的数据
在输出工作表上,添加标题。 下面添加一个公式,如下所示:

=ArrayFormula(查询({A2:B,C2:D,行(A2:A);IFERROR(LEN(A2:B)/0),E2:F,行(A2:A);IFERROR(LEN(A2:B)/0),G2:H,行(A2:A)},“选择Col1,Col2,Col3,Col4,其中Col3按Col5排序”)

  • 引用从第2行开始,跳过标题,以避免在输出工作表中包含标题
  • 行(A2:A)
    用于维持订单
  • IFERROR(LEN(A2:B)/0)
    是一种“技巧”,用于“隐藏”同一订单的第二行和后续行的订单(一般信息)数据。在查询函数的select参数上,ORDERBY子句将其引用为Col5
  • 假设
    lookup-choice-1
    永远不会为空
注:

  • 如果添加了更多列,则应相应更新列号
  • 不要使用
    orderby
    子句按常规信息列对结果进行排序,因为隐藏“标签”的“技巧”。如果需要应用排序,在应用上述公式之前,可以通过“数据>排序范围”对源范围进行排序。。。特征,因此数据在通过上述公式转换之前进行排序
  • 另见

    • ,一篇描述数据>排序范围的官方帮助文章

    @ritz在这一点上,我甚至不知道这是否可行,所以我什么都没试过。在谷歌上搜索答案并没有让我有多大收获,因为这是一个奇怪的、抽象的问题。我不是Excel/Sheets的超级用户,所以我甚至不知道从哪里着手解决这个问题。我已经以此为出发点,并在这里取得了一些进展,但我相信我在按版本排序方面遇到了问题,因为我相信我需要按提交人的姓名排序。我想我很接近,但是排序是关闭的=数组FORMULA(查询({Sheet1!A:D,Sheet1!E:G,ROW(Sheet1!A:A);IFERROR(LEN(Sheet1!A:D)/0),Sheet1!H:J,ROW(Sheet1!A:A);IFERROR(LEN(Sheet1!A:D)/0),Sheet1!K:m,ROW(Sheet1!A:A);IFERROR(LEN(Sheet1!A:D)(Sheet1!A:D)/0),Sheet1,Sheet1:A)},“选择列1、列2、列3、列4、列5、列6、列7,其中列5”“按列5排序”))如果你想看一看@jbwharris,这里有一个指向文档的链接:链接的电子表格与你之前评论中的公式不同。它位于A2中Sheet2@jbwharris:这不是相同的公式。通过快速查看,我可以看到它以按Col1排序而不是按Col5排序结束。无论如何,我将我的答案编辑为添加一些澄清说明。