我如何形成按匹配值分组的项目字符串? (例如 "Red: Apples, Cherries")
How could I form a string of items grouped by a matching value? (e.g. "Red: Apples, Cherries")
我想知道是否有合适的方法来做到这一点(没有脚本)——如果没有,我可以尝试为其创建一个脚本,但是这个 sheet 的一些用户将使用 Excel 在他们的计算机上,所以我尽量保持无脚本。
我有一个 sheet 设置来根据特定条件显示文本,这些文本将被复制并粘贴到外部程序中。
有一列表示月份 jan-dec 和旁边的一列,用户可以在其中输入 1-10 的数字(这些数字与使用 Vlookup 找到的字符串相关联另一个 sheet。他们基本上 "error codes" 只是为了保持 sheet 干净。但我只是省略了这部分,因为这个问题不需要它)
现在,填充的文本显示:
Jan: 1
Feb: 2
Apr: 1
如何按值对它们进行分组而不是单独列出它们?类似于:
1: Jan, Apr
2: Feb
是否可以从那个月份的列表中抓取项目并将它们放入自己的列表中?
这是目前的公式供参考:
=if(countif(Calculator!B2:B13,">0"),CONCATENATE(C2:C13),"None")
(计算器 sheet)B2:B13 --> 数字列
(Data sheet)C2:C13 --> 一个连接的字符串,包含一个单元格中的月份名称和数字(或者从技术上讲,与我之前提到的该数字关联的字符串)
C 列中的每个单元格都有 1 月 1 日、2 月 2 日的数据,没有数据的月份留空。当我将 C 单元格连接在一起时,它会自动省略空白单元格,这很有用,但现在我真的很想改为按该值对它们进行分组。
删除 A15 并将其粘贴到 A14:
={""; ARRAYFORMULA(TEXTJOIN(CHAR(10), 1, REGEXREPLACE(TRIM(
TRANSPOSE(QUERY(QUERY({A2:A13&",", B2:B13&":"},
"select max(Col1)
where not Col2 matches ':'
group by Col1
pivot Col2"),,9^9))), ",$", )))}
更新:
如果顺序很重要...
={""; ARRAYFORMULA(TEXTJOIN(CHAR(10), 1, REGEXREPLACE(TRIM(
TRANSPOSE(QUERY(QUERY({"♦"&ROW(A2:A13)&"♦"&A2:A13&",", B2:B13&":"},
"select max(Col1)
where not Col2 matches ':'
group by Col1
pivot Col2"),,9^9))), "♦\d+♦|,$", )))}
更新:
={""; ARRAYFORMULA(JOIN(CHAR(10), SUBSTITUTE(REGEXREPLACE(TRIM(QUERY(QUERY({
SORT(FILTER({SUBSTITUTE(A1:A12, "'", "/"&20)*1, B1:B12&":"}, B1:B12<>""), 2, 1, 1, 1)},
"select max(Col1)
group by Col1
pivot Col2
format max(Col1) 'Mmm♦yy,'"),,99^99)), ",$", ), "♦", CHAR(39))))}
我想知道是否有合适的方法来做到这一点(没有脚本)——如果没有,我可以尝试为其创建一个脚本,但是这个 sheet 的一些用户将使用 Excel 在他们的计算机上,所以我尽量保持无脚本。
我有一个 sheet 设置来根据特定条件显示文本,这些文本将被复制并粘贴到外部程序中。
有一列表示月份 jan-dec 和旁边的一列,用户可以在其中输入 1-10 的数字(这些数字与使用 Vlookup 找到的字符串相关联另一个 sheet。他们基本上 "error codes" 只是为了保持 sheet 干净。但我只是省略了这部分,因为这个问题不需要它)
现在,填充的文本显示:
Jan: 1
Feb: 2
Apr: 1
如何按值对它们进行分组而不是单独列出它们?类似于:
1: Jan, Apr
2: Feb
是否可以从那个月份的列表中抓取项目并将它们放入自己的列表中?
这是目前的公式供参考:
=if(countif(Calculator!B2:B13,">0"),CONCATENATE(C2:C13),"None")
(计算器 sheet)B2:B13 --> 数字列
(Data sheet)C2:C13 --> 一个连接的字符串,包含一个单元格中的月份名称和数字(或者从技术上讲,与我之前提到的该数字关联的字符串)
C 列中的每个单元格都有 1 月 1 日、2 月 2 日的数据,没有数据的月份留空。当我将 C 单元格连接在一起时,它会自动省略空白单元格,这很有用,但现在我真的很想改为按该值对它们进行分组。
删除 A15 并将其粘贴到 A14:
={""; ARRAYFORMULA(TEXTJOIN(CHAR(10), 1, REGEXREPLACE(TRIM(
TRANSPOSE(QUERY(QUERY({A2:A13&",", B2:B13&":"},
"select max(Col1)
where not Col2 matches ':'
group by Col1
pivot Col2"),,9^9))), ",$", )))}
更新:
如果顺序很重要...
={""; ARRAYFORMULA(TEXTJOIN(CHAR(10), 1, REGEXREPLACE(TRIM(
TRANSPOSE(QUERY(QUERY({"♦"&ROW(A2:A13)&"♦"&A2:A13&",", B2:B13&":"},
"select max(Col1)
where not Col2 matches ':'
group by Col1
pivot Col2"),,9^9))), "♦\d+♦|,$", )))}
更新:
={""; ARRAYFORMULA(JOIN(CHAR(10), SUBSTITUTE(REGEXREPLACE(TRIM(QUERY(QUERY({
SORT(FILTER({SUBSTITUTE(A1:A12, "'", "/"&20)*1, B1:B12&":"}, B1:B12<>""), 2, 1, 1, 1)},
"select max(Col1)
group by Col1
pivot Col2
format max(Col1) 'Mmm♦yy,'"),,99^99)), ",$", ), "♦", CHAR(39))))}