我有一个电子表格,其他人输入了数据。他们留下空白单元格,而不是记录0值。如何用0替换空白单元格?
我尝试使用^ $查找和替换为正则表达式,但是没有用。
我有一个电子表格,其他人输入了数据。他们留下空白单元格,而不是记录0值。如何用0替换空白单元格?
我尝试使用^ $查找和替换为正则表达式,但是没有用。
Answers:
我假设您只想在电子表格的某个部分中执行此操作,并且这是您需要解决的一次性问题,而不是您需要重复的问题。
为此,最简单的方法是找到形状和大小相同的另一个区域(也许在另一个工作表中),并且当前未使用。
在该区域的每个单元格中,将论坛设置为类似以下内容(取决于您使用的单元格):
= if(isblank(A3),“ 0”,A3)
从第二个区域中选择数据,复制并使用“编辑”>“选择性粘贴”>“仅粘贴”值将其粘贴回原始数据
您可能需要重新应用某些格式(例如日期格式),但是这些值将存在。
仅供参考,我在这里放置了此方法的有效示例:https ://docs.google.com/spreadsheets/d/1T6owfGtpKt3NLl5hq1AZpeWA1ILWUwBQ44bdlAmekF0/edit?usp=sharing
以下脚本将向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.重新打开文档,您现在有了新菜单!