我创建了一个包含多个行和列的数组。 在B栏中,我有蔬菜的类型,在c栏中,我有这些品种。 在数组中,有一个自动排序,在B列然后是c列进行。
是否可以自动合并包含相同类型的B列的单元格?
我只知道如何合并范围:
var range1 = sheet.getRange("b4:b9");
range1.merge();
亲切。
答案 0 :(得分:1)
这个示例脚本怎么样?我认为这种情况有几个答案,所以请将其视为其中之一。该脚本的流程如下。
function myFunction() {
var start = 4; // Start row number for values.
var c = {};
var k = "";
var offset = 0;
var ss = SpreadsheetApp.getActiveSheet();
// Retrieve values of column B.
var data = ss.getRange(start, 2, ss.getLastRow(), 1).getValues().filter(String);
// Retrieve the number of duplication values.
data.forEach(function(e){c[e[0]] = c[e[0]] ? c[e[0]] + 1 : 1;});
// Merge cells.
data.forEach(function(e){
if (k != e[0]) {
ss.getRange(start + offset, 2, c[e[0]], 1).merge();
offset += c[e[0]];
}
k = e[0];
});
}
Composées, Cucurbitacées, Légumineuses, Liliacées, Solanacées
。另一方面,“愿望”的顺序是Composées, Cucurbitacées, Légumineuses, Solanacées, Liliacées
。
Liliacées, Solanacées
和Solanacées, Liliacées
之间的差异逻辑。如果我误解了你的问题,我很抱歉。
对于您的下一个问题,我认为以下流程可以达到您想要的效果。但我认为可能还有其他解决方案。
breakApart()
中断合并的单元格。
"sample", "sample", "sample"
的“A1:A3”的单元格。当使用breakApart()
打破此合并单元格时,getValues()
检索到的“A1:A3”的每个值都变为[["sample"],[""],[""]]
。breakApart()
。如果您想打破“B1:B”,请使用如下。
var ss = SpreadsheetApp.getActiveSheet();
ss.getRange("B1:B").breakApart()