将 Google 表格中的两个独立列合并为一列

将 Google 表格中的两个独立列合并为一列

我有一份列表,其中一列包含人员姓名,另一列包含其公司名称。每列顶部都有一个标签,即 A 列为“姓名”,B 列为“公司”。

我有的数据

我想要使​​用的程序的工作方式是从一列中的主列表中读取数据,然后使用第二列区分第一列中包含的数据类型,如下所示:

我需要的数据

最终目标是自动从外部来源提取这些数据,这些数据存储在一个选项卡中。然后会有一个包含此主列表的选项卡,其中一列包含人员姓名和各种公司名称,第二列紧挨着第一列的数据类型(即“人员”或“公司”,如上图所示)。

到目前为止,我已经能够使用 Sheet 的“QUERY”函数填充第二个选项卡中的各个列,

`QUERY('Importer'!A2:A)`  

每次从外部源更新其他选项卡时,这使得该列能够很好地更新,问题是因为我事先不知道引用的列会有多长,所以我无法添加第二个“查询”函数来从其下方的另一列中提取数据。

任何关于如何解决这个问题的建议都将不胜感激。谢谢!

答案1

您可以尝试:

在此处输入图片描述

公式C1

=ARRAYFORMULA(SORT(SPLIT(FLATTEN(QUERY({IF(A2:A="",,A2:A&"|Name"),IF(B2:B="",,B2:B&"|Company")},"where Col1 is not null")),"|"),2,0,1,1))

一点点解释(从内到外):

  • IF()- 使用构造在二维数组内创建连接的字符串{1,2}
  • QUERY()- 从数组中删除所有空行。
  • FLATTEN()- 将结果数组展平为一列
  • SPLIT()- 将连接的值重新转换为二维数组。
  • SORT()- 对返回的数组按两列进行排序以获得想要的结果。
  • ARRAYFORMULA()- 所有内容都需要包装为数组输入公式。

编辑

对于那些想要自己处理数据的人来说:

姓名 公司
阿什·金塔纳 A公司
奥布里·威肯斯 B公司
卡梅伦·托斯 C 公司
哈雷·霍尔布鲁克 D 公司
雅克·阿尔金特 E 公司
杰米·齐亚 F 公司
杰西·帕特尔 G 公司
莱恩·伯格曼 H公司
麦迪逊陶布 公司一
特洛伊·伊斯顿 J公司

相关内容