【发布时间】:2021-10-14 16:29:48
【问题描述】:
我正在 Google 表格中寻求帮助 - B 列的数组公式(在 sn-p 中附加了类似内容)。我们可以通过一个带有拖动选项的简单公式(在 B2 上)来实现它。有没有办法在不手动拖动公式的情况下以更好的方式实现它。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签: google-sheets google-sheets-formula array-formulas
我正在 Google 表格中寻求帮助 - B 列的数组公式(在 sn-p 中附加了类似内容)。我们可以通过一个带有拖动选项的简单公式(在 B2 上)来实现它。有没有办法在不手动拖动公式的情况下以更好的方式实现它。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签: google-sheets google-sheets-formula array-formulas
我需要一个帮助列:
B3:
=ArrayFormula(IF(A3:A10=A2:A9,0,1))
C3:
=ArrayFormula(SUMIF(ROW(A3:10),"<="&ROW(A3:A10),B3:B10)+B2)
如果要跳过结束行号
B2:
=ArrayFormula({1;IF(A3:A="",,IF(A3:A=A2:A,0,1))})
C2:
=ArrayFormula(IF(B2:B="",,SUMIF(ROW(A2:A),"<="&ROW(A2:A),B2:B)))
【讨论】:
从 B2:B 中删除所有内容并将以下内容放入 B2:
=ArrayFormula(IF(A2:A="",,VLOOKUP(TEXT(ROW(A2:A),"00000")&A2:A,{FILTER({TEXT(ROW(A2:A),"00000")&A2:A;""},{A2:A;""}<>"",{A2:A;""}<>A:A),SEQUENCE(COUNTA(FILTER(A2:A&ROW(A2:A),A2:A<>"",A2:A<>{A3:A;""})))},2,TRUE)))
您会注意到整个公式范围与分号和空引号配对,全部包含在大括号 { } 中。这些允许我们形成等长的虚拟范围,以与运行全列的真实范围进行比较。
TEXT(ROW(A2:A),"00000")&A2:A 与 A2:A 的 A 列内容构成每一行的串联(格式为“00000”以保持长度一致)。然后FILTER 仅在内容与上面行中的内容不匹配的串联中进行过滤。第二个虚拟列由SEQUENCE 组成,它使用COUNTA 对第一个FILTER 的变体来了解过滤了多少项。
VLOOKUP 然后在过滤列表中查找A2:A 中每一 行的TEXT(ROW(A2:A),"00000")&A2:A 连接(不仅仅是过滤的行)并返回SEQUENCE 数字。因为“00000”格式的行的顺序将是精确的升序,我们可以使用TRUE作为VLOOKUP的最后一个参数,如果没有找到精确匹配,它将回退到最接近的先前匹配,从而为重复的内容生成相同的SEQUENCE 数字。
【讨论】: