Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如果A列的单元格被合并,则E列中要合并的确切单元格_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如果A列的单元格被合并,则E列中要合并的确切单元格

Google apps script 如果A列的单元格被合并,则E列中要合并的确切单元格,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我的工作表包括班组工作时间的详细信息。A列为序列号。E列为总工作时数。一天的工作包括小班次和一些细节,如序列号、姓名、乘务员身份证会被重复 我想合并具有相同单元格值的列(A列和E列)。我已经能够合并S.No的A列(感谢本论坛的@Tanaike),并希望对E列做同样的事情 条件-如果A列合并,则E列中应合并的单元格数正好为零。因此,如果A11、A12合并=E11,E12应合并;A13未合并=E13未合并;A14、A15、A16、A17合并=E14、E15、E16、E17应合并。 谢谢 有关守

我的工作表包括班组工作时间的详细信息。A列为序列号。E列为总工作时数。一天的工作包括小班次和一些细节,如序列号、姓名、乘务员身份证会被重复

我想合并具有相同单元格值的列(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];
  });  
    
 
解决问题的两种方法
  • Apps脚本提供了和等方法,允许您将合并格式从A列传输到E列
    • 您可以通过在列A中的所有合并范围中循环,检索它们的开始行和结束行,并合并列E中的各个范围来完成此操作:

    你能提供一些关于你想做什么的详细信息吗?A列中的单元格是否合并到原始电子表格或目标电子表格中?您想在哪里相应地合并列E中的单元格?您能否将提供的代码简化为与特定问题相关的代码?也许还可以提供一个可视化的测试电子表格?@ziganotschka非常感谢您的关注。我已经按照你的建议编辑了我的原始问题。请看一看,让我知道你需要什么更多的信息。我已经测试了方法1,它工作得非常好!!我想坚持这种做法@ziganotschka非常感谢您的即时帮助。所有的力量都给你!! var range = destSheet.getRange(1,1, destSheet.getLastRow(), 1); var mergedRanges = range.getMergedRanges(); for (var i = 0; i < mergedRanges.length; i++) { Logger.log(mergedRanges[i].getA1Notation()); var start = mergedRanges[i].getRow(); var end = mergedRanges[i].getLastRow(); var destinationRange = destSheet.getRange(start, 5, end - start + 1, 1); destinationRange.mergeVertically(); } var range = destSheet.getRange(1,1, destSheet.getLastRow(), 1); var destinationRange = destSheet.getRange("E1"); range.copyTo(destinationRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);