从两个范围创建摘要

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

我有两个范围:一个是标题列表(A列),一个是类别列表(在B列的另一张纸上)。两者都是由其他来源生成的,而且长度是动态的(即不能保证它们的大小相同)。

我需要用这些数据制作一个汇总表。我想取标题的第一个值,然后添加所有的类别,然后取标题的第二个值,然后添加所有的类别,等等。类似于。

HEADER 1
Role 1
Role 2
Role ...
HEADER 2
Role 1
Role 2
Role ...

以此类推

我试过各种方案,目前是这样的。

=ARRAYFORMULA( SPLIT(JOIN("|", A1:A6), "|") & "+" & JOIN("~", UNIQUE(Roles!B3:B)) )

这能让我得到一行,每一个标题都有一列,并附加了整个角色范围。例如,第一列有。

ON-SITE+Project Management & Creative Design~Production Staff~Video~Audio~

以此类推,整个工作表都是这样

理想的情况是,我应该再加两个SPLIT函数,把它分开到一堆列中,然后简单地转置成一列就可以了。然而,似乎在一个ARRAYFORMULA中你只能得到一个SPLIT实例。当我再添加一个SPLIT函数时。

=ARRAYFORMULA( SPLIT(SPLIT(JOIN("|", $A$1:$A$6), "|") & "+" & JOIN("~", UNIQUE(Roles!$B$4:$B)), "+") )

它只是简单地将第一列分割成两列,然后忽略其余的部分。如果我在其中添加第二个分割函数,我只得到Header。似乎你在ARRAYFORMULA中只能使用一次SPLIT,然后它就崩溃了。我读过一些关于JOIN和SPLIT在ARRAYFORMULA中似乎不能很好地发挥作用的文章。

有没有什么东西我可以添加或命令到这个里面,使它如愿以偿?我也对其他方法持开放态度,比如使用QUERY或REGEX(这些我对REGEX知之甚少)。我尝试使用TEXTJOIN和{}创建一个文字数组,但通过INDIRECT传递这个似乎从来没有工作。我还需要在gSheets内部解决这个问题--可惜没有脚本。

这里是可编辑的工作表

google-sheets split google-sheets-formula transpose array-formulas
1个回答
1
投票

尝试。

=ARRAYFORMULA(TRANSPOSE(SPLIT(QUERY("♦"&TRANSPOSE(UNIQUE(Roles!C1:H1))&"♦"&
 TEXTJOIN("♦", 1, UNIQUE(Roles!B2:B)),,99^99), "♦")))

0

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