Google apps script Google Drive-当用户通过webform提交数据时,如何使用连接功能自动填充Google电子表格?

Google apps script Google Drive-当用户通过webform提交数据时,如何使用连接功能自动填充Google电子表格?,google-apps-script,concatenation,google-sheets,array-formulas,Google Apps Script,Concatenation,Google Sheets,Array Formulas,我有一个GoogleDrive电子表格,我试图让一个公式自动填充所有行,因为用户通过附在电子表格上的网络表单提交数据。棘手的部分是,我已经使用了CONCATENATE函数,将提交到多个列上的数据连接到一个单元格中 但是,为了使连接函数起作用,我必须将其“应用”到新提交的行中。 有没有一种方法可以自动在电子表格中的行中填写此公式 我试着给它放置一个数组公式函数,甚至设置范围(A1:A),但是我找不到合适的语法来工作,如果它可能喜欢这样的话 功能如下: =CONCATENATE(CHAR(10)&a

我有一个GoogleDrive电子表格,我试图让一个公式自动填充所有行,因为用户通过附在电子表格上的网络表单提交数据。棘手的部分是,我已经使用了
CONCATENATE
函数,将提交到多个列上的数据连接到一个单元格中

但是,为了使
连接
函数起作用,我必须将其“应用”到新提交的行中。 有没有一种方法可以自动在电子表格中的行中填写此公式

我试着给它放置一个
数组公式
函数,甚至设置范围
(A1:A)
,但是我找不到合适的语法来工作,如果它可能喜欢这样的话

功能如下:

=CONCATENATE(CHAR(10)&X14&V14&Y14&J14&" "&K14&" "&L14&M14&N14&O14&" "&P14&" "&Q14&R14&S14&CHAR(10)&T14&"."&CHAR(10)&U14&"."&CHAR(10)&W14&CHAR(10)&CHAR(10)&CHAR(10)&I14&CHAR(10)&Z14&" "&AA14&CHAR(10)&AB14&AC14&AD14&AE14&AF14&AG14&AH14&"."&CHAR(10)&AI14&AJ14)
任何建议都将不胜感激。

(由OP在问题编辑中回答。转换为社区wiki答案。请参阅)

OP写道:

我从谷歌电子表格的脚本库(tuxincarnate[@]gmail[dot]com的AutoFormulas)中找到了一个小脚本,它解决了这个问题!刚刚用来自webform的十几份提交文件对它进行了测试,它实现了它的承诺,在应用的列中自动填充公式

这个应该放在第二排

OP写道:

@戴维特向我展示了一种简单明了的解决方法。ArrayFormula应该单独使用,告诉它将每列的范围放在每一行中。工作起来很有魅力。正确的语法是:
=arrayformula(A2:A&B2:B&C2:C)
,以便将单元格
A2
B2
C2
中的内容“连接”到应用
arrayformula
的单元格中。最重要的问题是,通过使用此功能,当用户通过附加到电子表格的webform提交数据时,它会一直填充行


我想你可以用自动扩展结果的函数来实现这一点。e、 g.数据库功能。听起来你就快到了,只需要找到正确的函数。嗨,艾迪,谢谢你的建议,我会研究它。@eddyparkinson-我从谷歌电子表格的脚本库(tuxincarnate[@]gmail[dot]com提供的AutoFormulas)中找到了一个小脚本,它解决了这个难题!刚刚从它的十来个表格中测试了它,它做了它所承诺的,用下面的公式自动计算。当你已经有了一个解决方案的时候,你可能想为将来考虑下面的公式,这是你原来想要的。(您不需要使用CONCATENATE,因为您正在选择要与&symbol一起连接的列)=arrayformula(CHAR(10)&X2:X&V2:V&Y2:Y&J2:J&&K2:K&&L2:L&M2:M&N2:N&O2:O&&P2:P&&Q2:Q&R2:S&CHAR(10)&T2:t&&CHAR(10)&U2:U&&CHAR(10)&W2:W&CHAR(10)&CHAR(10)&I2:I&AA2&CHAR:10)&AA2)&AB2:AB&AC2:AC&AD2:AD&AE2:AE&AF2:AF&AG2:AG&AH2:AH&“&”&CHAR(10)&AI2:AI&AJ2:AJ)这应该放在第二位row@DavidTew:谢谢David的建议!这比我之前找到的解决方案要好得多。我测试了“ArrayFormula”,它正是我想要的,我只是不知道我可以单独使用它。再次感谢您的帮助!
// Updates all rows except the last to have the same formulas as row 3 (allowing for a header and different row 2 formula)
// To activate this functionality, the last row in the column should have the value '(auto)'
function UpdateFormulas() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetCount = ss.getNumSheets();

  for (var sheetIndex = 0; sheetIndex < sheetCount; ++sheetIndex) {
    var sheet = ss.getSheets()[sheetIndex];

    var rowCount = sheet.getMaxRows();
    var columnCount = sheet.getMaxColumns();

    if (rowCount < 5) continue;

    for (var columnIndex = 1; columnIndex <= columnCount; ++columnIndex) {
      if (sheet.getRange(rowCount, columnIndex).getValue() == '(auto)') {
        var row3Range = sheet.getRange(3, columnIndex);
        for (var rowIndex = 4; rowIndex < rowCount; ++rowIndex) {
          if (sheet.getRange(rowIndex, columnIndex).isBlank()) {
            row3Range.copyTo(sheet.getRange(rowIndex, columnIndex));
          }
        }
      }
    }
  }
}
=arrayformula(CHAR(10)&X2:X&V2:V&Y2:Y&J2:J&" "&K2:K&" "&L2:L&M2:M&N2:N&O2:O&" "&P2:P&" "&Q2:Q&R2:R&S2:S&CHAR(10)&T2:T&"."&CHAR(10)&U2:U&"."&CHAR(10)&W2:W&CHAR(10)&CHAR‌​(10)&CHAR(10)&I2:I&CHAR(10)&Z2:Z&" "&AA2:AA&CHAR(10)&AB2:AB&AC2:AC&AD2:AD&AE2:AE&AF2:AF&AG2:AG&AH2:AH&"."&CHAR(10)&‌​AI2:AI&AJ2:AJ)