regex 在Google表格中分割单元格并添加包含该数据的附加行的公式

o75abkj4  于 2023-06-07  发布在  Go
关注(0)|答案(1)|浏览(106)

我想知道是否有人可以帮助。
我需要一个谷歌表单公式,将第一个表中的数据转换为第二个表。在第1列中,拆分由“,”分隔的任何数字,将数据放在下面的新行中,然后将其余列中的数据复制到第1列中的数据旁边,见表2它应该是什么样子。
我有下面的公式,它工作得很好:
=ArrayFormula(LET(range,CurrentTable!A2:F,顶盖,偏移(range,-1,,1,),col_1,INDEX(range,,1),col_2,INDEX(range,,2),合并,TOCOL(SPLIT(FILTER(IF((col_1="”)*(col_2<>””),“X”,col_1),col_2<>””),“,“,1,0)&"~"& BYROW(FILTER(OFFSET(range,,1,,COLUMNS(range)-1),col_2<>"”),LAMBDA(r,JOIN(“~",r))),1),list,SPLIT(REGEXREPLACE(FILTER(combine,NOT(REGEXMATCH(combine,“^~”))),“^X”,“”),“~",1,0),{headers; list}))
但是我需要修改公式来做3件额外的事情:
1.我需要它忽略Col 1中的空白,现在它只是按原样返回。
1.我希望它排除任何不包含数字或数字组合(即23,34,22)的字段,所以我想排除任何单词(如未分配,但它可以是任何单词)等。不简单,因为23,34,22不是严格的数值。
1.我想创建一个新列,并填充'Sub Div 1',如果它存在于col 2中。谢谢
表1
| 地区代码|城市|账户名称|帐号|颜色|开始日期|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 一百零一|达拉斯|福特|10001|红色|二OO四年|
| 九十九,六十八|休斯敦|丰田汽车|10002|蓝色|二零零五年|
| 七十|圣地亚哥|路虎|10003|绿色|二零零六年|
| 七十三|第三分区-西雅图|迷你|一万零四|黑色的|二零零七年|
| 七十八|奥本、伯明翰和小石城|宾利|一万零五|紫色|二零零八年|
| 九、三十三|迈阿密&坦帕|尼桑|一万零六|黄色|2009年|
| 一百一十|底特律|特斯拉|10007|橙子|2010年|
| 七三,九,三十三|Sub Div 1-芝加哥和底特律|特斯拉|10007|橙子|2010年|
| | 亚Div 1-亚特兰大|本田|一零零九|粉红色|2012年|
| 九十九,六十八|第一小组-巴吞鲁日|座位|一零一零|灰色|2013年|
| 未分配|Sub Div 2-波士顿/纽约/华盛顿|GM|一零一一|白色|二○一四年|
表2
| 地区代码|SD|城市|账户名称|帐号|颜色|开始日期|
| - -----|- -----|- -----|- -----|- -----|- -----|- -----|
| 一百零一||达拉斯|福特|10001|红色|二OO四年|
| 九九||休斯敦|丰田汽车|10002|蓝色|二零零五年|
| 六十八||休斯敦|丰田汽车|10002|蓝色|二零零五年|
| 七十||圣地亚哥|路虎|10003|绿色|二零零六年|
| 七十三||第三分区-西雅图|迷你|一万零四|黑色的|二零零七年|
| 七十八||奥本、伯明翰和小石城|宾利|一万零五|紫色|二零零八年|
| 九个||迈阿密&坦帕|尼桑|一万零六|黄色|2009年|
| 三十三||迈阿密&坦帕|尼桑|一万零六|黄色|2009年|
| 一百一十||底特律|特斯拉|10007|橙子|2010年|
| 七十三|子分区1| Sub Div 1-芝加哥和底特律|特斯拉|10007|橙子|2010年|
| 九个|子分区1| Sub Div 1-芝加哥和底特律|特斯拉|10007|橙子|2010年|
| 三十三|子分区1| Sub Div 1-芝加哥和底特律|特斯拉|10007|橙子|2010年|
| 九九|子分区1|第一小组-巴吞鲁日|座位|一零一零|灰色|2013年|
| 六十八|子分区1|第一小组-巴吞鲁日|座位|一零一零|灰色|2013年|

8ehkhllq

8ehkhllq1#

您可以尝试:

=let(Λ,index(reduce(wraprows(,7,),sequence(match(,0/(A2:A<>""))),lambda(a,c,let(Σ,split(index(A2:A,c),","),{a;
   {tocol(Σ),if(sequence(counta(Σ)),{ifna(regexextract(index(B2:B,c),"^Sub Div1")),index(B2:F,c)})}})))),
   {{A1,"SD",B1:F1};filter(Λ,--choosecols(Λ,1))})

相关问题