Google Sheets单元格拆分并新增行的公式修改需求
修改后的Google Sheets公式及说明
以下是满足需求的最终公式,已整合所有新增功能:
=ArrayFormula(LET( range, CurrentTable!A2:F, headers, OFFSET(range,-1,,1,), // 筛选A列非空、且为纯数字/逗号分隔纯数字的行 filtered_rows, FILTER(range, NOT(ISBLANK(INDEX(range,,1))), REGEXMATCH(INDEX(range,,1), "^(\d+,)*\d+$") ), col_a, INDEX(filtered_rows,,1), // 拆分A列并拼接其他列数据 combined_data, TOCOL(SPLIT(col_a, ", ", 1, 0)&"~"& BYROW(filtered_rows, LAMBDA(row, JOIN("~", INDEX(row,,2), INDEX(row,,3), INDEX(row,,4), INDEX(row,,5), INDEX(row,,6)))), 1), split_list, SPLIT(combined_data, "~", 1, 0), // 新增SD列:判断City列是否含"Sub Div1"并填充对应值 sd_column, IF(REGEXMATCH(INDEX(split_list,,3), "Sub Div1"), "Sub Div1", ""), // 拼接表头与结果,新增SD列表头 {headers, "SD"; split_list, sd_column} ))
功能实现说明
- 忽略A列空白项:通过
NOT(ISBLANK(INDEX(range,,1)))筛选掉A列空白的行 - 排除含文字的A列字段:用正则表达式
^(\d+,)*\d+$匹配纯数字或逗号分隔的纯数字格式,仅保留符合条件的行 - 新增SD列:通过
REGEXMATCH检测City列(假设为原数据第3列,若实际列位不同,需调整INDEX(split_list,,3)中的数字)是否包含"Sub Div1",满足条件则填充该值,否则为空
注意:如果City列不是原数据的第3列(C列),请修改公式中
INDEX(split_list,,3)的列索引数字,确保对应到实际的City列位置。
内容的提问来源于stack exchange,提问作者Petey2005
相关产品推荐
相关产品推荐

