【问题标题】:If cells of Column A are merge, exact cells to be merged in Column E如果 A 列的单元格被合并,则要在 E 列中合并的确切单元格
【发布时间】:2020-06-22 19:25:35
【问题描述】:

我的表格包含轮班工作人员的工作时间的详细信息。 A 列是序列号。 E 栏是总工作时间。一天值班由较小的班次组成,并且会重复一些细节,例如 S.No、姓名、船员 ID。

Initial data

我想合并具有相同单元格值的列(A 列和 E 列)。我已经能够合并 S.No 的 A 列(感谢论坛中的@Tanaike),并希望对 E 列做同样的事情。

Achieved so far

What i want

条件 - 如果 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


【解决方案1】:

解决问题的两种方法

  1. Apps Script 提供 isPartOfMerge()mergeVertically() 等方法,可让您将合并格式从 A 列转移到 E 列。
  • 您可以通过循环遍历 A 列中的所有合并范围,检索它们的开始行和结束行,然后合并 E 列中的各个范围来实现:
 var range = destSheet.getRange(1,1, destSheet.getLastRow(), 1);
  var mergeRanges = range.getMergedRanges();
  for (var i = 0; i 
  1. 您可以将整个 A 列的格式复制到 E 列 - 这将复制合并
 var range = destSheet.getRange(1,1, destSheet.getLastRow(), 1);
  var destinationRange = destSheet.getRange("E1");
  range.copyTo(destinationRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);

【讨论】:

  • 我已经测试了方法 1,效果很好!!我想坚持这种方法。 @ziganotschka 非常感谢您的即时帮助。所有的权力给你!
猜你喜欢
  • 2019-02-11
  • 2014-04-06
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
相关资源
最近更新 更多