3

我已经搜索和搜索,但找不到任何有效的东西。在创建 Google 表单时,我试图消除电子表格中保留的任何空列。这会很有帮助,因为我有一个用于表格中字符串比较总和的公式,但我不希望它包含空单元格的比较。(即,我将每一行中 H:X 中的条目与 H2:X2 进行比较,并计算有多少相同。)我知道我可以调整公式,但我希望为同事建立一个模板,所以他们不必担心改变任何东西。如果我可以让最后的空列自动消失,我可以更改求和公式以一直延伸到 CZ 列(只是为了确保它走得足够远),而不用计算比较中的空白。

任何帮助都会很棒!谢谢!

4

3 回答 3

3

我在我的谷歌表格的脚本编辑器中使用这些脚本来清理它们。在某个地方偶然发现了它们……也许它们会有所帮助。

//Remove All Empty Columns in the Entire Workbook
function removeEmptyColumns() {
  var ss = SpreadsheetApp.getActive();
  var allsheets = ss.getSheets();
  for (var s in allsheets){
    var sheet=allsheets[s]
    var maxColumns = sheet.getMaxColumns(); 
    var lastColumn = sheet.getLastColumn();
    if (maxColumns-lastColumn != 0){
      sheet.deleteColumns(lastColumn+1, maxColumns-lastColumn);
    }
  }
}

//Remove All Empty Rows in the Entire Workbook
function removeEmptyRows() {
  var ss = SpreadsheetApp.getActive();
  var allsheets = ss.getSheets();
  for (var s in allsheets){
    var sheet=allsheets[s]
    var maxRows = sheet.getMaxRows(); 
    var lastRow = sheet.getLastRow();
    if (maxRows-lastRow != 0){
      sheet.deleteRows(lastRow+1, maxRows-lastRow);
    }
  }
}
于 2016-01-14T04:39:19.073 回答
0

这是您在使用 Google 表单时必须习惯的。如果您物理删除行/列,数据永远不会真正删除,它们只会在未来某个未知时间重新出现。这是一个非常错误且不可靠的设置。

我的建议是让你的公式和数据完全分开。您可以通过将表单响应复制到另一张表(使用代码或其他方式)来完成此操作。该表允许您控制正在馈送(或不馈送)到系统其余部分的数据。我还会更进一步,使用类似的公式

ImportRange(SheetSource!A:A) 

在第三张表中,以允许您控制列的顺序。从那里,您可以添加您的公式,以在相对安全的情况下对通过的数据进行操作。

但是不久前我遇到了一种情况,表格和表格随机失去联系,无法恢复。我一直熬夜到早上 6 点试图解决这个问题,但是如果我没有将数据复制到单独的工作表(如上所述),那么灾难就已经完成了。

幸运的是,这似乎是一个随机故障,因为一切在上午 10 点左右恢复正常,但简而言之,您的数据在使用 Google 表单时并不真正安全。

于 2013-09-09T12:13:47.603 回答
0

使用 Arrayformula 更适合这个,尽管它做同样的事情。

示例:=ARRAYFORMULA('Form Responses'!A1:EA)

Importrange 有一个明显(且令人讨厌)的延迟,因为如果您想从其他电子表格文件中引用工作表,您将使用此延迟。Arrayformula 引用同一文件中的工作表,没有延迟。

于 2014-03-25T23:07:15.770 回答