Google 스프레드 시트에 대한 "isFormula"수식 찾기


13

특정 셀에 일반 (수동으로 입력 한) 값이 있거나 수식이 있는지 알려주는 함수가 있습니까?

답변:


5

이 작은 스 니펫으로 그렇게 할 수 있습니다.

암호

function isFormula(startcol, startrow) {
  // prepare string
  var str = String.fromCharCode(64 + startcol) + startrow;

  // retrieve formula
  var fCell = SpreadsheetApp.getActiveSpreadsheet()
    .getRange(str).getFormula();

  // return false if empty else true 
  return fCell ? true : false;
}

용법

여기에 이미지 설명을 입력하십시오

에서 이 대답 톰 우드는 인용 부호의 사용을 회피 할 수있는 방법을 발견했다.

도구> 스크립트 편집기에서 스크립트를 추가하고 버그 버튼을 눌러 인증을 활성화하십시오.

예제 파일을 만들었습니다. 공식 확인


나는 방황하고 있었다 ... 당신의 함수는 실제로 셀의 주소 인 문자열을 얻고 isFormula2("A1")있습니다. 그래서 나는 다음 function isFormula2(cell) { return (cell.getFormula())!=""; } 과 같이 그것의 새로운 버전을 만들려고 노력했다. 그리고 나는 그것을 사용할 수 있다고 기대 isFormula2(A1)했지만 이것은 작동하지 않는 것 같고 그것을 디버깅하려고 할 때 그것은 cell정의 되지 않은 것으로 보인다 . 변경되어 f(A1)대신 작동 f("A1")합니까?
epeleg

@epeleg 수정 된 답변보기.
Jacob Jan Tuinstra

:) 그래서 주소를 얻는 대신 이제 열과 행을 얻도록 변경했습니다. 여기에 호출이있을 수있는 구문이 isFormula(a1)없습니까? (MS Excel에서는 범위 매개 변수를 얻는 함수가 될 것입니다)
epeleg

@epeleg 가장 가까운 isFormula_1 ( "A2 : A2") 입니다. 예제 파일을보십시오. 커스텀 함수는 그런 식으로 작동합니다. 따옴표가 없으면 값을 얻을 수 있습니다. 따옴표를 사용하면 문자열을 그대로 사용할 수 있지만 복사 / 붙여 넣을 수는 없습니다. COLUMN and ROW 솔루션은 피할 수없는 해결책입니다.
Jacob Jan Tuinstra

isFormula (a1 : a1)로 호출하면 사용자 정의 함수가 얻는 값은 무엇입니까? isFormula (a1 : b2)는 어떻습니까?
epeleg

9

짧은 답변

ISFORMULA () 내장 함수를 사용하십시오 .

배경과 설명

새 Google 스프레드 시트에서 문서화되지 않은 수식을 발견 한 것 같습니다. @Pnuts는 CELL공식이 작동하지 않는다고 말하면서 (부분적으로는 새 Google 스프레드 시트에서만 사용할 수 있기 때문에) 코드를 새 Google 스프레드 시트에 복사했습니다. 내 (사용자 정의) 수식은 두 가지가 아닌 하나의 인수 만 허용한다는 오류가 발생했습니다.
여기에 이미지 설명을 입력하십시오

이름을 isFormula다른 것으로 바꾸면 작동하는 사용자 정의 기능이 생겼습니다. 이 경우에도 다른 Google 스프레드 시트를 만들어 isFormula수식을 사용했습니다 . 수식이 자동 완성에 나타나지 않지만 작동합니다.
여기에 이미지 설명을 입력하십시오

따라서 새 Google 스프레드 시트에서 수식을 사용할 수 있다면 이것이 가장 좋은 답변입니다.

공식

=isFormula(A1)

노트

새로운 Google 스프레드 시트에서만 사용할 수 있습니다. 다른 사람들에게 새 공식을 확인하도록 요청했으며 확인되었습니다. 문서화되지 않았으므로 구현이 확실하지 않으며 사라질 수 있습니다. 는 ARRAYFORMULA이 새로운 공식을 사용하는 경우 작동하지 않습니다.

나는 당신을 위해 예제 파일을 만들었습니다 : isFormula


좋은. Google에서 내 추천을 채택한 것 같습니다. :) "새 Google 스프레드 시트"로 어떻게 전환합니까?
epeleg

흥미 롭군 내 Gmail 계정에서는 작동하지만 Google 앱 계정에서는 작동하지 않습니다 ...
epeleg

2
ISFORMULA ()가 문서화되었습니다. 참조 support.google.com/docs/answer/6270316?hl=en
루벤

2

ISFORMULA()Google 의 숨겨진 내장 기능이있는 것 같습니다 . 나는 내 자신의 기능을 삭제하고 여전히 작동하는 것을 깨달았습니다. 새 스프레드 시트에서 시도했지만 여전히 작동합니다. 캐시 문제가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.