【发布时间】:2020-06-22 19:25:35
【问题描述】:
我的表格包含轮班工作人员的工作时间的详细信息。 A 列是序列号。 E 栏是总工作时间。一天值班由较小的班次组成,并且会重复一些细节,例如 S.No、姓名、船员 ID。
我想合并具有相同单元格值的列(A 列和 E 列)。我已经能够合并 S.No 的 A 列(感谢论坛中的@Tanaike),并希望对 E 列做同样的事情。
条件 - 如果 A 列被合并,则 E 列中完全没有单元格应该合并。因此,如果 A11,A12 合并 = E11,E12 应该合并; A13 未合并 = E13 未合并; A14、A15、A16、A17 合并 = E14、E15、E16、E17 应该合并。 谢谢。
到目前为止的相关代码 -
// merge columns vertically for same cell value for Column A
var start = 10; //data starts from row 10
var c = {};
var k = "";
var offset = 0;
// Retrieve values of column A
var data = destSheet.getRange(start, 1, lastRow-2, 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]) {
destSheet.getRange(start + offset, 1, c[e[0]], 1).merge();
offset += c[e[0]];
}
k = e[0];
});
【问题讨论】:
-
你能提供更多关于你想要做什么的详细信息吗? A 列中的单元格是否合并到原始或目标电子表格中?您想相应地合并 E 列中的单元格在哪里?您能否将提供的代码缩减为与您的特定问题相关的代码?并且也许提供一个可视化的测试电子表格?
-
@ziganotschka 非常感谢您的关注。我已按照您的建议编辑了我的原始问题。请看一下,让我知道您还需要什么信息。
标签: google-apps-script google-sheets