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

时间:2019-04-03 11:38:50

标签: google-sheets google-sheets-formula

我有两栏。 A列具有多种组类型(即:Group1,Group2,Group3),B列是域的列表(即:a.com,b.com,c.com等)。

我需要的结果:

  • 要在单个单元格中加入同一组中的域(以逗号分隔)。
  • 无论单个组中有多少个域,此逗号分隔值的字符串都不得超过特定的域限制数量。
  • 该组中剩余的域将显示在下一行,并以逗号分隔(必要时,行数应尽可能多,不要超过最大域数)。
  • 左侧的相邻列将指示每个域字符串所属的组。

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

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

1 个答案:

答案 0 :(得分:1)

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

在样本表上名为MK.Solution的选项卡上,您将找到此公式。我认为它应该得到您的关注,并可以处理更大的数据集。我是S.E的新手。因此,我不确定是包含工作表公式的协议,因此我暂时将其粘贴,并希望尽快解决。

=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"))

干杯, 马特