Google Sheet数组公式自动化:多列规则计数问题求助
Google Sheets 数组公式实现方案
B/C/D列循环计数修复(解决C列出现0的问题)
针对「Copy of Main Challenge Tab」标签页,用以下数组公式一次性实现自动循环计数,无需逐行拖拽:
B列公式(每30行递增1,对应C到5且D到6后重置)
=ARRAYFORMULA(IF(ROW(A:A)=1, "B列标题", CEILING(ROW(A:A)/30, 1)))
逻辑:每30行(5组×6行)为一个周期,自动向上取整实现B列递增。
C列公式(每6行递增1,1-5循环,避免出现0)
=ARRAYFORMULA(IF(ROW(A:A)=1, "C列标题", MOD(CEILING((ROW(A:A)-1)/6, 1)-1, 5)+1))
逻辑:先计算每行对应的6行组序号,用MOD取余后+1,确保结果始终在1-5之间,不会出现0。
D列公式(1-6循环)
=ARRAYFORMULA(IF(ROW(A:A)=1, "D列标题", MOD(ROW(A:A)-1, 6)+1))
逻辑:通过取余运算实现1-6的循环计数,和原规则一致。
F列可重复递增计数(Q列非空时留空)
如果你的重复规则匹配示例17,18,19,19,20,20…(每4个有效行中前2行递增,后2行重复当前计数),同时Q列非空时留空,用以下公式:
=ARRAYFORMULA(IF(ROW(A:A)=1, "F列标题", IF(Q:Q<>"",, SCAN(17, ROW(A:A), LAMBDA(acc, row, IF(row=1, acc, IF(Q:row<>"", acc, IF(MOD(COUNTIFS(ROW(A:A), "<="&row, Q:Q, ""), 4)>=2, acc, acc+1) ) ) )) )))
逻辑:
- 用
SCAN函数累计计数,初始值设为17 - 统计当前行及之前Q列为空的总行数,按每4行的周期判断是否重复当前计数
- Q列非空时保持上一次计数(最终显示为空)
若需要基于其他标签页的计数序列实现重复,可调整为:
=ARRAYFORMULA(IF(ROW(A:A)=1, "F列标题", IF(Q:Q<>"",, VLOOKUP(COUNTIFS(ROW(A:A), "<="&ROW(A:A), Q:Q, ""), {SEQUENCE(COUNTA(参考标签页!A:A)), 参考标签页!A:A}, 2, TRUE) )))
逻辑:通过统计有效行数,匹配「参考标签页」的计数序列,自动同步递增并支持重复。
内容的提问来源于stack exchange,提问作者AJW009
相关产品推荐
相关产品推荐

