我有一个包含大量基本数据的电子表格。使用=filter()
,将我要报告的内容拉出到第二个选项卡中。我将数据细分为每月1/4,以便b:e列为Jan,F:I为Feb,依此类推。 =filter
正在提取3个报告,每个报告具有随机的行数。因此报告1可能是2-10行,报告2可能是11-18行,报告3可能是19-40行。每个报告的开头是一月,二月,三月的标题行。我想合并月份所在的标题行中的4列,以使月份标题跨越该月的四个季度。由于我们不知道这将是哪行,因此我猜想它需要是一个脚本,该脚本在A列中查找“标头”,然后仅将标头行合并B:E,F:I。
我最终将获得多个标签,这些标签具有不同的=filter()
公式,但在同一列中具有相同的标题信息。
我正在考虑将脚本与mergeAcross()
一起使用,但是无法弄清楚语法仅以Header为目标行并将其合并为4个月。
答案 0 :(得分:0)
这是一个可行的尝试。我添加了一些列,所以现在我的日期开始于 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();
}
}
};