用于连接值的公式,用逗号、多行、列和多个条件分隔它们



我有两列。列 A 具有多个组类型(即:组 1、组 2、组 3),B 列是域列表(即:a.com、b.com、c.com 等)。

我需要的结果:

  • 在单个单元格中加入来自同一组的域,以逗号分隔。
  • 无论单个组中的域数如何,此逗号分隔值字符串都不得超过域的特定限制数。
  • 组中的其余域将显示在下一行中,以逗号分隔(根据需要行数,永远不会超过最大域数)。
  • 左侧的相邻列将指示每个域字符串所属的组。

在此示例中,有三个组和 26 个域。每个字符串的域数限制为 5:https://docs.google.com/spreadsheets/d/1q1LkUyOkdiNvHjw78S4EXx1xw2n1ggeYRbDUhOwAgcc/edit#gid=0 ​

我不知道这是否太复杂了...希望有人可以分享一些见解。提前谢谢。

你在谷歌论坛上也问过这个问题。 我在那里发布了我的解决方案,因为那是我通常自愿努力的地方,但 Player0 建议我也在这里发布,所以我在这里。

在名为MK的选项卡上的示例表上。解决方案,你会发现这个公式。 我认为它应该得到你所追求的,并在更大的数据集上工作。 我是 SE 的新手,所以我不完全确定包含工作表公式的协议,所以我现在只是粘贴它,希望尽快弄清楚。

=ARRAYFORMULA(QUERY({SPLIT(UNIQUE(B2:B&"-"&INT((COUNTIFS(B2:B,B2:B,ROW(B2:B),"<="&ROW(B2:B))-1)/5)),"-"),TRANSPOSE(SUBSTITUTE(TRIM(QUERY(IF(B2:B&"-"&INT((COUNTIFS(B2:B,B2:B,ROW(B2:B),"<="&ROW(B2:B))-1)/5)=TRANSPOSE(UNIQUE(B2:B&"-"&INT((COUNTIFS(B2:B,B2:B,ROW(B2:B),"<="&ROW(B2:B))-1)/5))),C2:C&",",),,9^99)&"|"),", |",""))},"select Col1,Col3 where Col1<>'1' order by Col1"))

干杯 马 特

最新更新