Google Sheets中ArrayFormula提取字符串差异的自动应用问题
Google Sheets 自动计算剩余ID的公式修正
问题原因
原公式使用ARRAYFORMULA时,FILTER无法在数组环境中逐行处理拆分后的多值数据,导致出现「FILTER range must be a single row or a single column」错误;同时JOIN的聚合逻辑也无法适配逐行计算的需求,因此无法自动应用到新增条目。
修正后的公式
使用BYROW函数实现逐行独立计算,可自动适配新增行:
=BYROW(A2:B, LAMBDA(row, IF(INDEX(row,1)="", "", IF(EXACT(INDEX(row,1), INDEX(row,2)), "", JOIN(", ", FILTER(SPLIT(INDEX(row,1), ", "), NOT(COUNTIF(SPLIT(INDEX(row,2), ", "), SPLIT(INDEX(row,1), ", ")))) ) ) ))
公式说明
BYROW(A2:B, LAMBDA(row, ...)):遍历A2到B列的每一行,将当前行的A、B列数据封装为row变量INDEX(row,1)/INDEX(row,2):分别提取当前行的初始ID(A列)和结果ID(B列)- 保留原有的空值判断、完全匹配判断逻辑,通过
BYROW实现逐行单独处理拆分、过滤、拼接操作,解决了原公式的范围错误问题 - 新增条目时,只要A列填入内容,公式会自动计算对应行的剩余ID
内容的提问来源于stack exchange,提问作者Tamara
相关产品推荐
相关产品推荐

