У меня есть таблица, где кто-то еще вводил данные. Они оставили пустые ячейки вместо записи 0 значений. Как заменить пустые ячейки нулями?
Я пытался найти и заменить регулярными выражениями, используя ^ $, но это не сработало.
У меня есть таблица, где кто-то еще вводил данные. Они оставили пустые ячейки вместо записи 0 значений. Как заменить пустые ячейки нулями?
Я пытался найти и заменить регулярными выражениями, используя ^ $, но это не сработало.
Ответы:
Я предполагаю, что вы хотите сделать это только в определенной части таблицы, и это единовременная проблема, которую нужно исправить, а не повторять.
Для этого самый простой подход состоит в том, чтобы найти другую область такой же формы и размера (возможно, на другом листе), и в настоящее время не используется .
В каждой ячейке в этой области установите форум как-то так (в зависимости от используемых ячеек):
= Если (ISBLANK (А3), "0", А3)
Выделите данные из второй области, скопируйте их и вставьте обратно в оригинал, используя «Правка»> «Специальная вставка»> «Только вставить значения».
Возможно, вам придется повторно применить некоторые форматирования (например, форматы даты), но значения будут там.
К вашему сведению, я разместил работающий пример этого подхода здесь: https://docs.google.com/spreadsheets/d/1T6owfGtpKt3NLl5hq1AZpeWA1ILWUwBQ44bdlAmekF0/edit?usp=sharing
Следующий скрипт добавит a 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;
});
}));
}
Когда файл открывается, создается пункт меню под названием Нули, имеющий четыре подпункта. Если вы хотите запустить ручную функцию при открытии, просто добавьте ее так:
Я создал для вас файл примера: замените пустые ячейки нулями .
1. Создайте копию файла или вставьте код в Инструменты> Редактор сценариев . 2. Нажмите кнопку ошибки часов, чтобы аутентифицировать скрипт.
3. Повторно откройте ваш документ, теперь у вас есть новое меню!
Один из способов, который помог мне в подобных ситуациях в электронных таблицах Google, состоял в том, чтобы суммировать пустой столбец с 0 и сохранять результат в новом столбце.
Если в столбце A
есть пустые ячейки, которые вы хотите заменить, и, скажем, у вас есть данные B
, используйте следующий пустой столбец C
для хранения обновленных значений следующим образом:
C1=SUM(A1, 0)
и так далее для всего столбца C
.
В моем случае мне нужно было умножить значения, и пустые ячейки работали как 1
s вместо 0
s PRODUCT()
, поэтому я сделал:
=PRODUCT(SUM(A,0), multiplier)
который дал мне ожидаемые результаты для пустых или не числовых ячеек в A
.
У меня были огромные данные с произвольно установленными пробелами, поэтому использование if(isblank())
было плохой идеей для меня, поскольку это было бы очень трудоемким.
Вместо этого я скачал свой лист как csv и открыл его в TextWrangler (любой текстовый редактор с функцией поиска и замены будет работать). Затем я нашел ',,' и заменил на ', 0,'. Я должен был сделать это дважды. Затем, когда я снова импортировал, я использовал if(isblank())
только первый и последний столбцы моего набора данных. Все остальное было обнулено. Только заняло около 5-10 минут.
Вы можете использовать «Найти и заменить» ( Ctrl+ F→ Дополнительные параметры).
^$