从两个范围创建摘要
Create Summary from Two Ranges
我有两个范围:一个是 header 的列表(A 列),一个是类别列表(在 B 列的单独 sheet 上)。两者都是从其他来源生成的,并且长度可以是动态的(即不能保证它们的大小相同)。
我需要对这些做一个总结sheet。我想取headers的第一个值,然后添加所有类别,然后是headers的第二个值,然后是所有类别,等等。类似:
HEADER 1
Role 1
Role 2
Role ...
HEADER 2
Role 1
Role 2
Role ...
以此类推
我尝试了各种选择,目前我有这个:
=ARRAYFORMULA( SPLIT(JOIN("|", A1:A6), "|") & "+" & JOIN("~", UNIQUE(Roles!B3:B)) )
这让我得到一行,每个 header 有一列,并附加了整个角色范围。例如,第一列有:
ON-SITE+Project Management & Creative Design~Production Staff~Video~Audio~
等等 sheet.
理想情况下,我会再添加两个 SPLIT 函数来将它分成一堆列,然后简单地转置为一个列即可完成。但是,您似乎只在 ARRAYFORMULA 中获得一个 SPLIT 实例。当我添加另一个 SPLIT 函数时:
=ARRAYFORMULA( SPLIT(SPLIT(JOIN("|", $A:$A), "|") & "+" & JOIN("~", UNIQUE(Roles!$B:$B)), "+") )
它只是将第一列分成两列,然后忽略其余列。如果我向其添加第二个拆分,我只会得到 Header。看来您只在 ARRAYFORMULA 中使用了一次 SPLIT,然后它就崩溃了。我读过几篇关于 JOIN 和 SPLIT 如何在 ARRAYFORMULA 中表现不佳的文章。
有什么我可以添加或订购的东西以使其按需要工作吗?我也对其他方法持开放态度,例如使用 QUERY 或 REGEX(我对 REGEX 知之甚少)。我尝试使用 TEXTJOIN 和 {} 创建文字数组,但通过 INDIRECT 传递它似乎从来没有奏效。我还需要在 gSheets 中解决这个问题 - 不幸的是没有脚本。
尝试:
=ARRAYFORMULA(TRANSPOSE(SPLIT(QUERY("♦"&TRANSPOSE(UNIQUE(Roles!C1:H1))&"♦"&
TEXTJOIN("♦", 1, UNIQUE(Roles!B2:B)),,99^99), "♦")))
我有两个范围:一个是 header 的列表(A 列),一个是类别列表(在 B 列的单独 sheet 上)。两者都是从其他来源生成的,并且长度可以是动态的(即不能保证它们的大小相同)。
我需要对这些做一个总结sheet。我想取headers的第一个值,然后添加所有类别,然后是headers的第二个值,然后是所有类别,等等。类似:
HEADER 1
Role 1
Role 2
Role ...
HEADER 2
Role 1
Role 2
Role ...
以此类推
我尝试了各种选择,目前我有这个:
=ARRAYFORMULA( SPLIT(JOIN("|", A1:A6), "|") & "+" & JOIN("~", UNIQUE(Roles!B3:B)) )
这让我得到一行,每个 header 有一列,并附加了整个角色范围。例如,第一列有:
ON-SITE+Project Management & Creative Design~Production Staff~Video~Audio~
等等 sheet.
理想情况下,我会再添加两个 SPLIT 函数来将它分成一堆列,然后简单地转置为一个列即可完成。但是,您似乎只在 ARRAYFORMULA 中获得一个 SPLIT 实例。当我添加另一个 SPLIT 函数时:
=ARRAYFORMULA( SPLIT(SPLIT(JOIN("|", $A:$A), "|") & "+" & JOIN("~", UNIQUE(Roles!$B:$B)), "+") )
它只是将第一列分成两列,然后忽略其余列。如果我向其添加第二个拆分,我只会得到 Header。看来您只在 ARRAYFORMULA 中使用了一次 SPLIT,然后它就崩溃了。我读过几篇关于 JOIN 和 SPLIT 如何在 ARRAYFORMULA 中表现不佳的文章。
有什么我可以添加或订购的东西以使其按需要工作吗?我也对其他方法持开放态度,例如使用 QUERY 或 REGEX(我对 REGEX 知之甚少)。我尝试使用 TEXTJOIN 和 {} 创建文字数组,但通过 INDIRECT 传递它似乎从来没有奏效。我还需要在 gSheets 中解决这个问题 - 不幸的是没有脚本。
尝试:
=ARRAYFORMULA(TRANSPOSE(SPLIT(QUERY("♦"&TRANSPOSE(UNIQUE(Roles!C1:H1))&"♦"&
TEXTJOIN("♦", 1, UNIQUE(Roles!B2:B)),,99^99), "♦")))