Google Sheets中用ARRAYFORMULA批量生成指定行项目编码的问题
解决Google Sheet中ARRAYFORMULA继承编码的问题
你的核心问题是原公式无法动态继承上一行的编码,因为SWITCH里的A1是固定引用,而非逐行迭代的累积值。可以用SCAN函数实现逐行继承的逻辑,替换原公式:
=ARRAYFORMULA(SCAN("", B2:B, LAMBDA(acc, curr, IF(curr="Dept", INDEX(C:C, ROW(curr))&"-"&INDEX(E:E, ROW(curr)), IF(curr="End", "", acc) ) )))
公式说明:
SCAN("", B2:B, ...):以空字符串为初始值,逐行遍历B列数据,累积计算每一行的结果LAMBDA(acc, curr):acc代表上一行的累积结果,curr是当前行B列的单元格值- 当
curr为"Dept"时,拼接当前行C列和E列的编码作为新的累积值 - 当
curr为"End"时,重置累积值为空,对应A列单元格留空 - 其他行直接继承
acc(上一行的编码) ARRAYFORMULA确保公式自动覆盖所有行,插入新行时无需手动调整
内容的提问来源于stack exchange,提问作者Tim B
相关产品推荐
相关产品推荐

