다른 사람이 데이터를 입력 한 스프레드 시트가 있습니다. 그들은 0 값을 기록하는 대신 빈 셀을 남겼습니다. 빈 셀을 0으로 바꾸려면 어떻게해야합니까?
^ $를 사용하여 정규 표현식을 찾아 바꾸려고 시도했지만 작동하지 않았습니다.
다른 사람이 데이터를 입력 한 스프레드 시트가 있습니다. 그들은 0 값을 기록하는 대신 빈 셀을 남겼습니다. 빈 셀을 0으로 바꾸려면 어떻게해야합니까?
^ $를 사용하여 정규 표현식을 찾아 바꾸려고 시도했지만 작동하지 않았습니다.
답변:
스프레드 시트의 특정 부분에서만이 작업을 수행하고 싶다고 가정하고 반복해야 할 일이 아니라 해결 해야하는 일회성 문제라고 생각합니다.
이를 위해 가장 간단한 방법은 다른 영역을 동일한 모양과 크기 (아마도 다른 워크 시트에서) 를 찾고 현재 사용하지 않는 다른 영역을 찾는 것입니다 .
해당 영역의 각 셀에서 사용하는 셀에 따라 포럼을 다음과 같이 설정하십시오.
= 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;
});
}));
}
파일이 열리면 4 개의 하위 항목이있는 Zeros라는 메뉴 항목이 생성됩니다. 열 때 수동 기능을 실행하려면 다음과 같이 간단히 추가하십시오.
빈 파일을 0으로 바꾸십시오 .
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 분이 걸렸습니다.