如何在Google Spreadsheet中用零替换空白单元格?


13

我有一个电子表格,其他人输入了数据。他们留下空白单元格,而不是记录0值。如何用0替换空白单元格?

我尝试使用^ $查找和替换为正则表达式,但是没有用。



您是否有时间审查给出的任何答案?
Jacob Jan Tuinstra 2014年

Answers:


12

我假设您只想在电子表格的某个部分中执行此操作,并且这是您需要解决的一次性问题,而不是您需要重复的问题。

为此,最简单的方法是找到形状和大小相同的另一个区域(也许在另一个工作表中),并且当前未使用

在该区域的每个单元格中,将论坛设置为类似以下内容(取决于您使用的单元格):

= if(isblank(A3),“ 0”,A3)

从第二个区域中选择数据,复制并使用“编辑”>“选择性粘贴”>“仅粘贴”值将其粘贴回原始数据

您可能需要重新应用某些格式(例如日期格式),但是这些值将存在。

仅供参考,我在这里放置了此方法的有效示例:https ://docs.google.com/spreadsheets/d/1T6owfGtpKt3NLl5hq1AZpeWA1ILWUwBQ44bdlAmekF0/edit?usp=sharing


2
这很棒。在结果上使用SMALL命令确实有一个小问题。我可以使用= if(isblank(A3),0,A3)来修复它。
Joe Manlove

9

查找和替换中使用正则表达式:

^\s*$

Google电子表格用0代替空白


对于我的情况,这是最好的答案。我有两个需要具有值的单元格范围,但它们为空。如果有数据可用,我会在其中填充一些值。然后,我希望所有其他空单元格都填充零,以表示我已经考虑过这些单元格。
LS

这很有帮助,谢谢。
lathomas64

8

以下脚本将向0范围中的每个空白单元格添加一个。

function onOpen() {
  SpreadsheetApp.getUi().createMenu("Zeros")
    .addItem("Sheet", "zeroSheet")
    .addItem("Data range", "zeroDatarange")
    .addItem("Selection", "zeroSelection")
    .addItem("Manual Override", "zeroManual")
  .addToUi();      
}   

function zeroSheet() {
  var sheet = SpreadsheetApp.getActiveSheet();
  zero(sheet, 'sheet');
}

function zeroDatarange() {
  var range = SpreadsheetApp.getActiveSheet().getDataRange();
  zero(range, 'datarange');
}

function zeroSelection() {
  var range = SpreadsheetApp.getActiveSheet().getActiveRange();
  zero(range, 'activerange');
}

function zeroManual() {
  var spreadsheet = SpreadsheetApp.getActive();
  zero(spreadsheet, 'manual');
}

function zero(source, type) {
  var data, range;
  switch(type) {
    case 'sheet':
      var lastRow = source.getMaxRows();
      var lastColumn = source.getMaxColumns();    
      range = source.getRange(1, 1, lastRow, lastColumn);
      break;
    case 'manual':
      range = source.getSheetByName('Sheetname').getRange(2, 4, 3, 6);    
      break;
    case 'datarange':
    case 'activerange':
      range = source;
      break;
  }
  data = range.getValues();
  range.setValues( data.map( function(row) {
    return row.map( function(cell) {
      return !cell ? 0 : cell;
    });
  }));
}

注意

打开文件后,将创建一个名为Zeros的菜单项,其中包含四个子项。如果您还想在打开时运行手动功能,则只需添加它,就像这样: 在此处输入图片说明

我为您创建了一个示例文件:用零替换空白单元格
1.创建文件的副本或将代码粘贴到“ 工具”>“脚本编辑器”下。2.按下时钟错误按钮以验证脚本。 在此处输入图片说明 3.重新打开文档,您现在有了新菜单! 在此处输入图片说明


像魅力一样工作。至少在最新版本中,您需要将其添加到宏中才能执行它。
Nic Szerman

2

对于有限的列数,您可以过滤以选择“空白”,然后插入并向下复制0


2

在类似情况下在Google电子表格上对我有用的一种方法是将空列的总和设为0,然后将结果存储在新列中。

如果column中A有要替换的空白单元格,例如中有数据B,则使用下一个空白列C来存储更新后的值,如下所示:

C1=SUM(A1, 0) 以此类推C

就我而言,我需要将值相乘,并且空单元格的工作方式类似于1s而不是0s PRODUCT(),所以我做到了:

=PRODUCT(SUM(A,0), multiplier)

这给了我对中的空或非数字单元格的预期结果A


1

我有一个巨大的数据,里面随机设置了空白,所以使用if(isblank())它对我来说是个坏主意,因为这会占用大量的劳动力。

相反,我将工作表下载为csv,然后在TextWrangler中打开了它(任何具有find和replace的文本编辑器都可以使用)。然后我找到了',,'并替换为',0,'。我不得不做两次。然后,当我重新导入时,我if(isblank())仅在数据集的第一列和最后一列中使用。其他所有东西都清零了。只花了大约5-10分钟。


1

您可以使用“查找和替换”Ctrl+ F→更多选项)。

  • 找: ^$
  • 替换为:0
  • 搜索:您的范围
  • 选择:使用正则表达式进行搜索

1
-1。该问题明确指出,这对申请者无效。
msh210 '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.