给定一列中的单元格范围,找到最后填充的条目并返回该值。
我有一本账本,其中有一列,我大多数日子都会在新行中填写一个值,从顶部开始,一直到城镇。在我错过的日子里,单元格是空的。我想使用最后输入的值,但不确定如何搜索它。从逻辑上讲,我想从下往上搜索,寻找范围内的第一个非空单元格。范围每天都在扩大,但函数应该始终返回底部的条目。有些日子没有输入任何内容,导致该单元格为空,因此它不能只停在第一个空单元格并返回 1。它需要在整个范围内找到最后一个填充的单元格。
不知道 find() 或 search() 是否可以找到第一个“Non-WhiteSpaceOrEmptyString”,或者我会用它从下往上查找。
答案1
我自己创建了一个解决方案。在 Google 表格中,您可以创建自定义函数。在工具菜单上,单击脚本编辑器。在编辑器中,添加以下函数:
function LASTPOPULATED(range2d) {
if (!Array.isArray(range2d)) { return null; }
for (i=range2d.length-1; i>-1; i--) {
e = range2d[i];
if (!Array.isArray(e) || e.length != 1) { return null; }
v = e[0];
if (typeof(v) === 'number' || (typeof(v) === 'string' && v.length > 0)) { return v; }
}
return null;
}
要使用,请调用 LASTPOPULATED(range),其中范围采用 cell1:cell2 格式。Google Sheets 范围始终是二维的,因此请确保它代表列范围,例如 B1:B100,否则如果在找到填充元素之前检测到超过 1 列,函数将返回 null。