배열 인수로 호출 된 내장 Excel 함수의 동작에 대한 문서가 있습니까?


2

(처음에 이것을 stackoverflow에 요청했습니다. 그러나 Excel 수식은 "프로그래밍"과 "수퍼 유저"사이의 선을 확실히 가로 지르므로이 크로스 포스트가 적절하다고 생각합니다.)

Excel의 많은 기본 제공 함수는 배열 인수를 사용할 수 있습니다. 때로는 결과가 도움말에 문서화되어 있고 때로는 그렇지 않습니다. 그래서:

=IF({1,0,1}, 42, 99)

{42, 99, 42}를 반환합니다. 'IF'에 대한 도움말은 배열 인수를 다룹니다. 그러나:

=INDEX({2,3,5,7,11}, {2,4})

{3, 7}을 반환합니다. 이것은 직관적이지만 문서화하는 Microsoft 소스를 찾을 수 없습니다. 과:

=INDEX({1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16}, {1,3},{2,4})

전혀 직관적이지 않은 {2, 12}를 반환합니다.

이 덜 일반적인 배열 사용법을 다루는 소스가 있습니까? 하나가 있어야하는 것처럼 보이지만 "Excel", "function"및 "array"를 사용해야하기 때문에 웹 검색에서 찾지 못했습니다 ...

(또한 태그를 생성 할 권한이 없기 때문에 누군가이 질문에 '배열 수식'으로 태그를 지정할 수 있습니까?)

나는 배열 수식을 사용하는 것이 편하고 항상 사용하지만, 시행 착오에 의해 어떤 일이 일어날 지 알아 내야하는 것을 싫어합니다. 이 특정 질문은 내가 (간체 단순화 된) 일을 할 때 일어났습니다.

=IF(ISNA(udf()), {1,2,3,4}, {5,6,7,8})

여기서 'udf'는 {1,2,3}을 반환하고 수식은 {5,6,7, # N / A}로 평가되었습니다. 무슨 일이 일어나고 있는지 알아낼 수는 있지만 놀랐습니다. 내가 그것을 정식으로 내놓는 권위있는 출처를 찾을 수 없다는 것은 단지 나에게 버그가된다.

stackoverflow에 대한 질문에 대한 링크 (여러 답변과 의견이 있지만 지금 당장 질문을 만족시키는 것은 없습니다) : https : //.com/questions/3998632/is-thereanyanydocumentation-of-the-behavior 내장 된 Excel 기능

편집 : 나는이 질문의 stackoverflow 버전을 크게 편집하고 거기에 Neal의 대답의 일부를 통합했습니다. 추가는 Excel 수식의 "프로그래밍"측면에서 매우 중요하므로 여기서는 반복하지 않겠습니다.

답변:


2

나는 당신이하고있는 일에 유용한 유용한 것을 모른다 : 나는 적어도 하나의 것을 볼 것으로 예상되는 배열에서 배열 수식을 사용하는 예를 본 것을 기억할 수 없다. INDEX 함수의 예에서).

배열을 확장하면 어떻게 될지 생각하면 비교적 간단하다고 생각합니다 (더 나은 용어가 있습니까? 생각할 수 있으면 편집하십시오). 함수가 일반 인수를 기대하는 배열 인수를 사용하는 경우 결과는 배열 인수와 동일한 수의 요소를 가진 배열이며 결과 배열의 각 요소는 단일 인수로 결과가됩니다.

첫 번째 예에서

=IF({1,0,1}, 42, 99)

당신은 배열을 얻는다

{ IF(1, 42, 99), IF(0, 42, 99), IF(1, 42, 99)}

어느 것으로 나오는

{ 42, 99, 42 }

마지막 예에서

=IF(ISNA({1,2,3}), {1,2,3,4}, {5,6,7,8})

결과는

{ IF(ISNA(1),1,5) , IF(ISNA(2),2,6) , IF(ISNA(3),3,7) ,IF(ISNA(),4,8) }

첫 세 ISNA는 false를 반환하고 네 번째는 실패하므로 결과는 얻게됩니다. 여기서 혼란스러운 것은 오류 값이있는 곳 일 수 있다고 생각합니다.

처음에는 오류의 결과가 세 가지 적절한 elememts의 배열과 오류 인 요소보다 더 논리적이라고 생각했지만 그것에 대해 생각하면 배열 수식을 워크 시트 범위에 입력하여 배열의 요소. 이 작업을 생각하면 error 요소가 완벽하게 이해되고 오류를 찾는 데 도움이 될 수 있습니다.


그것은 그것을 보는 유용한 방법입니다. 그리고 나는 "확장 된"이 올바른 용어라고 생각합니다. 이 질문에 대한 답변을 Charles Charles에서이 질문의 Stackoverflow 버전으로보십시오. stackoverflow.com/questions/3998632/…
jtolle

이 답변은 저에게 매우 도움이되었으므로 다시 한 번 감사드립니다. 스택 오버 플로우 질문을 크게 수정하고 관심이있는 경우 답변을 빌 렸습니다.
jtolle

IF 예제에서 일어나는 일은 ISNA ({1,2,3})가 {FALSE, FALSE, FALSE}로 평가되고 IF를 평가하기 위해 Excel이 {FALSE, FALSE, FALSE, # N / A}를 입력 한 다음 IF (# N / A, 4, 8)은 # N / A로 평가됩니다.
jtolle

0

Charles Williams는 자신의 Decision Models 웹 사이트에 대한 링크를 게시했습니다.

https : //.com/questions/3998632/is-there-any-documentation-of-the-behavior-of-built-in-excel-functions-called-wit/4003413#4003413

링크 자체는 다음과 같습니다.

http://www.decisionmodels.com/optspeedj.htm

(전체 웹 사이트는 탁월한 Excel 리소스이며 FastExcel 제품은 매우 우수합니다 (BTW).)


그러나 기본적인 질문에 대한 대답은 "배열 인수를 받아들이거나 받아들이지 않는 Excel 함수 목록이 있습니까?" 미스터리로 남아 있습니다.
Carl Witthoft
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.