배열 인수로 호출 된 내장 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.