我有一个很难解决的问题,必须用公式(不是脚本)来完成。 基本上,原始输入列需要动态填充,直到碰到下一段文本。
这是一个包含预期输出的示例文件。 https://docs.google.com/spreadsheets/d/1ibqCvY39NlhCRWsbBdxKITUUpVpp9wXdEz44T-pHDY0/
有可能实现吗?
谢谢
答案 0 :(得分:1)
这将根据您的要求工作,假设 A2 永远不会为空,请将其放在数据的第一行(不是标题):
=ArrayFormula(IF(A2:A<>"", A2:A, B1:B))
它检查 A 列中是否有值,如果有,则填充该列,如果没有,则复制上面的单元格。
答案 1 :(得分:0)
删除 B 列中的所有内容(包括标题)并将以下公式放在 B1 中:
=ArrayFormula({"Header";VLOOKUP(FILTER(ROW(A2:A),ROW(A2:A)<=MAX(FILTER(ROW(A2:A),A2:A<>""))),FILTER({ROW(A2:A),A2:A},A2:A<>""),2,TRUE)})
以下是此公式工作原理的基本解释:
在大括号{}之间创建了一个虚拟数组;这个虚拟数组包含一个标题和所有结果。您可以将标题名称更改为您喜欢的任何名称。
VLOOKUP
查找小于或等于 A2:A 中包含文本的最高行号的每个行号。这些符合条件的行中的每一个都在第二个数组中查找,该数组仅包含来自非空行的行号和 A 列数据,返回数据本身。由于行以完美的升序排列并且 VLOOKUP
的最后一个参数设置为 TRUE
,因此第一个数组中的所有空白行将“向后”查找在 Column 中确实有内容的最新行A.