지금까지 찾은 가장 좋은 해결 방법은 다음과 같습니다.
worksheet_name!$A$1:$YY
그러나 이상적으로는 간단히 다음과 같이 쓸 수 있기를 원합니다.
worksheet_name!
그렇다면 누구나 알고 있습니다 : 전체 시트를 범위로 지정하는 구문이 있습니까?
지금까지 찾은 가장 좋은 해결 방법은 다음과 같습니다.
worksheet_name!$A$1:$YY
그러나 이상적으로는 간단히 다음과 같이 쓸 수 있기를 원합니다.
worksheet_name!
그렇다면 누구나 알고 있습니다 : 전체 시트를 범위로 지정하는 구문이 있습니까?
답변:
작업을 수행하기 위해 작은 Google Apps Script (GAS) 스 니펫을 만들었습니다.
function sheetRange(targetName,int) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var asName = ss.getActiveSheet().getSheetName();
var tgSheet = ss.getSheetByName(targetName);
var output;
if(targetName == asName) {
output = "Error: target sheet is active sheet !!";
} else {
switch(int) {
case 1:
output = tgSheet.getDataRange().getValues();
break;
case 2:
output = tgSheet.getSheetValues(1, 1, tgSheet.getMaxRows(),
tgSheet.getMaxColumns());
break;
default:
output = "Choose int to be 1 or 2 !!";
}
}
return output;
}
스프레드 시트 메뉴에서 도구> 스크립트 편집기를 선택하고 코드를 추가하십시오. 버그 버튼을 눌러야합니다.
=sheetRange("sheetName",int)
int
주의 사항에 설명 된대로 옵션을 사용하십시오 .
예제 파일을 만들었습니다. Sheet as Range
이 경우 GAS를 통해 스프레드 시트에서 범위를 결정하는 두 가지 방법이 있습니다.
int=1
; getDataRange
방법을 통해 . 그러면 마지막 열이 데이터를 포함하는 범위를 검색합니다. 행 수도 동일합니다. 이것은 일반적으로 가장 간단한 경로입니다. 예제 파일의 두 번째 시트를 참조하십시오.int=2
; getSheetValues
방법을 통해 . "WYSIWYG"범위를 검색합니다. 예제 파일의 세 번째 시트를 참조하십시오.Google 스프레드 시트에는 전체 시트 범위에 대한 범위 구문이 없습니다.
다음 수식은 Sheet1이라는 전체 시트의 범위 주소를 반환합니다.
="Sheet1!"&ADDRESS(1,1,,TRUE)&":"&ADDRESS(ROWS(Sheet1!A:A),COLUMNS(Sheet1!1:1),,TRUE)
참조로 사용하려면 INDIRECT 안에 넣으십시오. 다음 수식은 Sheet1의 모든 값 배열을 반환합니다.
= 배열 공식 ( 간접 ( "시트 1!" 주소 (1,1,, TRUE) & ":" 주소 (ROWS (Sheet1! A : A), COLUMNS (Sheet1! 1 : 1) ,, TRUE) , 참된 ) )
구체적인 것을 모르지만 행 / 열 수를 모르는 경우 몇 가지 수식을 사용할 수 있다고 생각합니다.
indirect("Sheet!1:"&countif(Sheet!A:A,"<>@")+countif(Sheet!A:A,"=@"))
여기, Sheet
시트 이름이며 @
임의의 문자열입니다. 선택한 시트가 @
하나의 셀에 있으면 작동하지 않습니다. 시트에 이러한 셀이 포함되어 있으면 다른 문자로 바꿀 수 있습니다.
는 COUNITF
여기서 열 A 행의 수를 카운트 : A를 함유하지 않는 @
것이 함유 어떤 세포가없는 경우 모두 있어야하는, 및 INDIRECT
변환 Sheet!1:###
(단, ###
실제의 선택된 범위에 대한 행의 수이다).
응용 프로그램 내에서 작업하는 사람들에게는 이미 최고의 답변이 제공되었지만 Google 스프레드 시트 내에서 작업하는 사람이 있다면 귀하의 요구에 맞는 방법이 있습니다.
"worksheet_name!1:" & ROWS(worksheet_name!A:A)
설명 : * 본질적으로 workflow_name의 행 수와 연결된 문자열을 통해 범위를 지정합니다 !
이 접근법의 일부 장점 : * '동적'입니다 ... 하단에 행을 추가하면 범위가 그에 따라 조정됩니다 * 가벼움-가져 오기 범위 / 쿼리 함수에 넣을 수 있습니다
단점 : * 모든 경우에 시도하지 않았으므로 특정 사용 사례에서만 작동 할 수 있습니다. * 개인적으로 물건을 역동적 / 깨끗하게 만드는 것을 선호하므로 일종의 사용자 정의 기능이 응용 프로그램 과이 가벼운 접근 방식 사이에서 좋은 중간 근거가됩니다.
전체 시트를 범위로 지정하려면 다음을 사용하십시오.
worksheet_name!A1:ZZ
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/clear에서 시도해보십시오.
또는 Java를 사용하는 경우 (Sheet1의 모든 항목을 지우려면) :
Sheets service = getSheetsService(credential);
service.spreadsheets().values().clear(REPORT_WARNINGS_LATAM_FILEID, "Sheet1!A1:ZZ", new ClearValuesRequest()).execute();
또는 다른 시트 (예 : Sheet2)의 수식 (예 : SUM)에 사용하려는 경우 다음 참조를 사용할 수 있습니다.
=SUM(Sheet1!A1:ZZ)
^ 이것은 Sheet1의 모든 기존 셀을 합산하고 Sheet2의 셀에 값을 넣습니다. https://docs.google.com/spreadsheets/d/1rP3YCl3ErlYjlYGT_Q-xFvkVr7yKw6WQfHklbohL1NM/edit?usp=sharing . 이 예제에서는 Sheet1에 3 개의 열과 5 개의 행이 있으므로이 수식 = SUM (Sheet1! A1 : ZZ)는 모든 열을 선택합니다. Sheet1에 행이나 열을 추가 할 수 있으며이 솔루션은 여전히 모든 셀을 선택합니다.
추신 : 당신이 내 대답을 투표하지 않으면-이유를 설명하십시오.
행 수를 알고 있다고 가정하면 전체 시트의 이름을 "worksheet_name"으로 지정할 수 있습니다.
단계 :
이제 함수에서 "worksheet_name"을 사용할 때마다 전체 워크 시트를 참조합니다.