Google Sheets篮球赛事原始数据规整技术求助
篮球赛事数据规整解决方案
规则1:生成Tournament列及后续行
核心逻辑
筛选A列中**不含"c OT"、"From the"、不含":"**的单元格,以米色高亮日期行(标准日期格式行)为分界,为每个日期区间匹配符合条件的赛事名称;若区间内无符合条件的单元格,取上方最近的赛事名称。
实现公式(以B列为Tournament列为例)
=ARRAYFORMULA( LET( data, A:A, is_date, ISDATE(data), valid_tourn, REGEXMATCH(data, "^((?!c OT|From the|:).)*$") * NOT(is_date), tourn_list, IF(valid_tourn, data, ""), fill_down, SCAN("", tourn_list, LAMBDA(acc, curr, IF(curr<>"", curr, acc))), date_groups, SCAN(0, is_date, LAMBDA(acc, curr, IF(curr, acc+1, acc))), IF(is_date, "", VLOOKUP(date_groups, UNIQUE(HSTACK(date_groups, fill_down)), 2, FALSE)) ) )
规则2:提取三分球/罚球行数据
核心逻辑
识别A列中包含"三分球"或"罚球"的行,提取其下方紧邻的单元格内容,并以对应的日期行作为每场比赛的标识。
实现公式(以C列为提取结果列为例)
=ARRAYFORMULA( LET( data, A:A, is_date, ISDATE(data), date_list, IF(is_date, data, ""), filled_dates, SCAN("", date_list, LAMBDA(acc, curr, IF(curr<>"", curr, acc))), is_target, REGEXMATCH(data, "三分球|罚球"), target_vals, OFFSET(data, 1, 0), IF(is_target, HSTACK(filled_dates, target_vals), "") ) )
补充说明
- 若米色高亮行不是标准日期格式,需替换
ISDATE(data)为背景色判断逻辑(需借助Google Sheets自定义函数或Apps Script实现单元格背景色读取)。 - 如需拆分提取的内容为多列,可扩展
HSTACK或SPLIT函数进一步处理。
内容的提问来源于stack exchange,提问作者TheGunner4
相关产品推荐
相关产品推荐

