我有一个包含大量基础数据的电子表格。使用=filter(),我将我想要报告的内容拉到第二个选项卡中。我将数据分解为一个月的1/4,因此列b:e是Jan,F:I是Feb,依此类推。=filter引入了3个报告,每个报告的行数都是随机的。因此报告1可以是行2-10,报告2可以是行11-18,报告3可以是行19-40。在每个报告的开头是1月,2月,3月的标题行。我想合并标题行中的4个列的月份,以便月标题跨越该月的4个季度。由于我们不知道这将是哪些行,我猜它需要一个脚本,它在A列中查找" header“,然后将B:E,F:I合并为标题行。
我最终会得到多个具有不同=filter()公式的选项卡,但在相同的列中具有相同的标题信息。
我正在考虑使用一个脚本与mergeAcross(),但不能找出语法,以目标只与标题行,并让它合并4行的月份。

发布于 2019-05-17 02:18:48
这是一个有效的尝试。我添加了一些列,所以现在我的日期从H列开始,而不是D列
function mergingMonth(){
var ss = SpreadsheetApp.getActive();
var lastRow = ss.getLastRow();
var range = ss.getRange("A1:A" + lastRow);
var data = range.getValues();
for (var r = 0; r < data.length; r++) {
for (var c = 0; c < 1; c++)
if (data[r][c] == "header") {
var row = r+1
ss.getRange("H"+row+":K"+row).mergeAcross();
ss.getRange("L"+row+":O"+row).mergeAcross();
ss.getRange("P"+row+":S"+row).mergeAcross();
ss.getRange("T"+row+":W"+row).mergeAcross();
ss.getRange("X"+row+":AA"+row).mergeAcross();
ss.getRange("AB"+row+":AE"+row).mergeAcross();
ss.getRange("AF"+row+":AI"+row).mergeAcross();
ss.getRange("AJ"+row+":AM"+row).mergeAcross();
ss.getRange("AN"+row+":AQ"+row).mergeAcross();
ss.getRange("AR"+row+":AU"+row).mergeAcross();
ss.getRange("AV"+row+":AY"+row).mergeAcross();
ss.getRange("AZ"+row+":BC"+row).mergeAcross();
ss.getRange("BD"+row+":BG"+row).mergeAcross();
ss.getRange("BH"+row+":BK"+row).mergeAcross();
ss.getRange("BL"+row+":BO"+row).mergeAcross();
}
}
};https://stackoverflow.com/questions/56157568
复制相似问题