我有一张大床单,我想要:
第 1 行:保留此数据 第 2 行:删除该行 第 3 行:删除该行 第 4 行:保留此数据 第 5 行:删除该行 第 6 行:删除该行 第 7 行:保留此数据 等等大约 300 行。
我找到了删除偶数行和奇数行的公式,但我的大脑无法针对这种特定情况进行调整。任何帮助将不胜感激。因为是奇数,如果删除第2+3行,数据会移位,然后下一个要删除的分组变成3+4。
您可以使用这个脚本来完成您想做的事情。
代码:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = ss.getDataRange();
var values = data.getValues()
var out = values.filter((_, i) => i % 3 == 0);
data.clearContent();
ss.getRange(1, 1, out.length, data.getLastColumn()).setValues(out);
}
代码片段
var out = values.filter((x, i) => i % 3 == 0);
过滤数组以仅保留每第三行,从初始行(索引0)开始。
随后,代码
ss.getRange(1, 1, out.length, data.getLastColumn()).setValues(out)
将筛选后的行从第一个单元格 (A1) 开始写回电子表格。它利用 out
数组的长度来确定要写入的行数。
运行代码之前的示例输出:
运行代码后的示例输出:
选择插入>工作表并将此公式放入新工作表的单元格A1中:
=query(Sheet1!A1:D, "skipping 3", 0)
将
Sheet1!A1:D
替换为数据的实际位置。
参见 query()。