仅当单元格包含数据并垂直排列数据时,才从另一张工作表中的一系列数据中提取数据

问题描述 投票:0回答:1

我有一个从 Google 表单创建的 Google 表格。这是图书馆阅读计划的注册表单。该表格包含可选字段,最多可注册 6 个孩子(提供每个孩子的姓名和年龄)。因此,除了一些要求联系信息的初始列之外,还有“参与者 1 姓名”、“参与者 1 年龄”、“参与者 2 姓名”、“参与者 2 年龄”等列,一直到参与者 6。很多人只会注册 1 或 2 个孩子,因此其余列将为空白。

以下是示例表的链接:https://docs.google.com/spreadsheets/d/1zZ3c7Lk0epT_H1M2Rn_-q5k78oU8JjPqU-cP61DeXQc/edit?usp=sharing

我正在尝试在同一个电子表格中创建另一个工作表,该工作表为我提供了仅包含参与者及其年龄的垂直列表摘要。因此,在这个新工作表中,将有两列,分别称为“参与者姓名”和“年龄”,并且此页面将仅从表单中导入该数据,忽略任何空白列。

到目前为止,我已经尝试使用 SELECT 和 WHERE 构建查询

=QUERY(FormResponses!F:Q, "select F,H,J,L,N,P where F<>'' or H<>'' or J<>'' or L<>'' or N<>'' or P<>''", 1)

这仅适用于“姓名”列,然后我想我可以为“年龄”列做类似的操作。

它确实从 FormResponses 表中仅提取我想要的数据(参与者姓名),但它仍然保留它们最初所在的行,而我想垂直列出每一个。奇怪的是,它还抓住了列标题,我认为查询末尾的“1”会阻止它这样做。

我已经阅读了有关 TRANSPOSE 的其他 Stack Exchange 帖子,看看是否有一种方法可以让数据垂直显示,但不知道如何在查询中应用它。

google-sheets google-sheets-formula
1个回答
0
投票

您可以尝试:

=let(Σ,wraprows(tocol(FormResponses!F2:Q),2),filter(Σ,index(Σ,,1)<>""))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.