빈 배열은 지원되지 않음 오류

빈 배열은 지원되지 않음 오류

나는 매년 하나씩 시트 통합 문서를 가지고 있으며 해당 시트의 해당 연도에 지나간 모든 달의 평균을 얻어야 합니다. 시트 이름은 연도별로 지정되었으며 수식 이름은 MONTHS.

=LET(year,VALUE(MID(CELL("filename"),SEARCH("]",CELL("filename"))+1,31)),IF(YEAR(TODAY())=year,MONTH(TODAY())-1,IF(year>YEAR(TODAY()),0,12)))

그리고 이를 사용하여 평균을 구합니다.

대부분의 경우 작동하지만 다른 셀이나 시트에서 일부 작업을 수행하면#CALC빈 배열은 지원되지 않는다는 오류입니다. 시트를 다시 계산하면 자동으로 수정되지만 항상 그렇게 해야 한다는 것은 매우 짜증나는 일입니다. 이런 일이 발생하지 않도록 하는 방법이 있나요?

답변1

수년간의 APL 사용을 토대로 한 개인적인 의견은 빈 배열 지원이 필수적이라는 것입니다. 빈 배열을 지원하지 않는 것은 MicroSoft의 실수입니다.

답변2

나는 사용할 수 있는 것이 없기 TAKE()때문에 "이것이 당신의 문제입니다"라고 확실히 말할 수 없습니다. MONTHS명명된 범위의 범위는 WORKBOOK으로 지정될 가능성이 있지만 SHEET로 범위를 지정해야 서로 다른 각 시트의 특정 셀을 지정할 수 있으며 TAKE()두 가지 잠재적인 문제로 인해 문제가 될 수 있다는 두 가지 측면을 다루겠습니다 . ,,행 매개변수를 지정하고 아래에서 가장 먼저 설명하는 것 , MONTHS때로는 "0"을 반환하여 TAKE()열을 반환하지 않으므로 빈 배열을 반환하는 것입니다.

다른 시트에서 작업한 후 돌아오는 상황에서 이 문제를 언급했다는 사실은 특정 셀의 범위를 지정하지 않는 MONTHS첫 번째 범주로 향하는 경향이 있습니다. CELL()그러나 열을 지정하면 빈 배열이 생성될 가능성이 높고 빈 배열은 지원되지 않는다는 메시지가 표시된다는 사실은 0문제가 있음을 시사합니다. 그러나 이 경우에는 그렇게 간단하게 해결되어서는 안 됩니다. 물론 "하지 말아야 한다"는 "하지 않을 것이다"와 동일하지 않습니다. 그래서 회색지대.

하지만 아래에서는 쉽게 확인할 수 있는 세 가지 큰 사항을 제공하며, 더 쉽게 확인하기 위해 Named Range 범위 자료를 테스트했는데 그렇습니다. (설명된 오류를 절대 반환하지 않도록 Excel을 강제하는 표준 방법도 테스트했지만 문제가 해결되지는 않습니다.) 그것이 어떻게 영향을 미칠 수 있는지는 TAKE()테스트에서 말할 수 없습니다. 하지만 이 두 가지를 쉽게 테스트하는 방법을 살펴보겠습니다. 내 생각은 MONTHS설명된 문제에 가장 잘 맞는 범위에 있습니다 . 그래서 그것이 먼저 온다:

수식에는 세 가지 가능한 결과가 있으며 그 중 하나는 입니다 0.

여태까지는 그런대로 잘됐다. 그러나 TAKE()함수에서는 해당 결과를 사용하여 함수에 보낼 열 수를 지정합니다 AVERAGE().

MONTHS그러나 수식이 반환될 때 배열을 구성할 때 해당 행의 열을 가져오라고 0지시하는 것입니다 . 열은 빈 배열을 의미합니다.TAKE()00

이것이 효과가 있으려면 좀 더 복잡한 접근 방식이 필요합니다. 예를 들어:

을 사용하여 의 결과를 IF()테스트하세요 . MONTHS이면 0셀 O5에 $0.00의 결과를 반환합니다. 결과 가 아닌 경우 수식을 그대로 0사용하십시오 .AVERAGE()

또는

계산된 값이 미래인 경우 1a 대신 a를 반환합니다 . 해당 시트의 모든 행이 비어 있다고 생각하므로 값이 0인 셀 하나의 평균을 구하고 0을 반환합니다. 그렇지 않은 경우 적용되는 유사한 논리가 식별될 수 있습니다.0year

직접적인 관련이 없고 현재 문제를 일으키지 않는 또 다른 생각은 CELL("filename")Excel이 다시 계산할 때마다 이 시트뿐만 아니라 모든 시트에서 사용되는 모든 인스턴스를 Excel에서 다시 계산하도록 강제한다는 것입니다. 그리고 다른 시트에서 작업하면서 질문에 제공한 내용의 일부로 설명되는 문제가 있습니다. 다른 시트에서 Excel이 다른 시트 중 하나를 다시 계산할 때 현재 있는 시트를 사용하여 반환합니다. CELL()당신이 사용하고 있는 시트를 제외하고는 그것이 사용되는 시트가 아닙니다. 그래서 다른 모든 사람들은 불행한 결과를 얻었고 Excel은 그것을 깨닫고 그들 모두에 대해 오류를 반환하는 것 같습니다. 아래에서 언급한 것처럼 이는 귀하를 더욱 악화시키거나 상사가 이에 대해 불평하는 경우 당황스러울 뿐입니다. 시트가 막다른 골목에 있는 경우 해당 결과는 수년간의 합계와 같은 다른 시트의 셀보다 우선하지 않습니다. 하지만 그렇다면 정방향 사용에 오류를 입력하여 오류를 반환하게 됩니다.

이에 대해 말하자면, 현재 시트를 편집할 때가 아니라 기본적으로 다른 시트에서 편집을 수행하기 위해 탐색할 때 문제가 발생합니다. 그렇게 하면 다른 워크 #VALUE!시트에서 MONTHS. 각 시트가 독립적이고 더 이상 시트에 들어가지 않는 한 그다지 문제가 되지는 않습니다. 일부 작업을 수행하기 위해 시트로 이동하고 오류의 효과를 확인하기 위해 악화될 것입니다(분명히 "빈 배열" 상황이기는 하지만, TAKE()정확한 효과를 테스트할 수는 없지만... 다음을 반환할 수 있습니다. 평균을 구하는 일련의 오류로 인해 오류가 AVERAGE()발생하지 않고 #CALC!오히려 자체 #VALUE!오류가 발생합니다. 어쨌든 그것은 당신을 악화시키고 상사를 방해할 뿐이지만 시트의 첫 번째 항목에서는 그럴 것입니다. 해결하다.

MONTHSWORKBOOK 범위 대신 SHEET 범위를 생성하여 이 문제를 해결할 수 있습니다 . 그리고 CELL()그 안의 두 기능 각각에 대해 셀(모든 셀, 그런데 셀 A1은 아닌 이유는 무엇입니까?)을 지정하면 됩니다 . 이렇게 하면 해당 문제가 사라집니다.

물론 이는 각 기존 시트에 대해 명명된 범위를 설정하는 것을 의미하지만 템플릿이 있거나 현재 시트를 복사하고 데이터를 제거하여 새 연도를 추가하는 경우 SHEET 범위가 있는 명명된 범위는 복사될 때마다 생성되고 이름이 변경되었습니다. 그러니 미래에는 문제가 되지 않습니다. MONTHS그런 다음 WORKBOOK 범위의 명명된 범위를 삭제합니다 .

TAKE()매개 변수가 ,,없고 rows때로는 열 매개변수에 대한 매개변수가 제공되는 것이 어려움의 원인이 아닌 경우 0(그렇게 많은 기회를 제공하지는 않지만 MS가 전체 철학적 접근 방식을 변경했을 수 있습니다. 그렇게 하지 않는 것 같습니다.) 더 이상 무엇을 사용했는지 INDEX()), CELLS()사용법이 문제일 가능성이 높습니다.

현재 이 기능에 대해 내가 찾을 수 있는 것은 단지 그들의 광고 팝이 역류하거나 유쾌한 예, 텍스트 및 비디오를 통해 훌륭하게 역류되는 것뿐이지만 실제 사용 문제를 조사하는 사람은 아무도 없기 때문에 나는 누구에게서 말하는 것이 아닙니다. 귀하의 사용을 위해 테스트를 거쳤습니다. 나는 지난 몇 년 동안 MS의 접근 방식이 이전 버전 ,,) INDEX()의 사용을 허용하지 않는다는 점에 주목하고 있습니다. 오히려 행 매개 변수가 필요하다고 말할 때 이전의 "행이나 열을 지정해야 함"을 의미하는 것도 아닙니다. 오히려 columns 매개변수 제공 여부에 관계없이 행 매개변수를 제공해야 합니다. 또한 그들이 당신을 "그 행, 이 많은 열"을 의미하는 것으로 해석하기를 바라면서 ,,MONTHS)실제로는 실제로 그리고 개념으로서 분명히 벗어나기 때문에 실제로는 그렇지 않을 수도 있는 암시적 교차를 수행하고 있기를 바라고 있습니다.

따라서 문제는 다음과 같습니다.

  1. MONTHSSHEET 범위 의 명명된 범위와 (아마도) WORKBOOK 범위 버전을 사용해야 합니다 .

  2. TAKE()에서 가끔 반환하는 "0"을 처리하지 못하는 문제입니다 MONTHS.

  3. TAKE()행 매개변수의 부재를 처리하지 못하는 문제입니다.

  4. TAKE()위의 2번과 3번 모두에서 문제가 되는 것은 문제입니다.

편집하다:,,MONTHS)모든 조사를 하고 도움이 되는 것을 찾지 못한 후에 이것을 게시한 다음 검색 페이지를 하나 더 클릭했습니다... 그리고 위에서 자주 언급한 부분을 사용하는 예제가 있고 TAKE()모든 것을 무시하는 접근 방식을 취함으로써 성공하는 것을 보여주는 웹 사이트를 찾았습니다. 행을 사용하여 매개변수를 간단히 사용하는 것처럼 모든 행을 반환합니다 INDEX().

따라서 그 측면은 문제가 되지 않습니다. 죄송합니다. 기본 답변을 너무 많이 편집하여 최종적으로 완전히 다시 작성하지 않고 해당 부분을 제거했으며 지금은 침대에서 통화하기에는 너무 늦었습니다. 그러나 그의 예는 해당 사용법에 대한 적절한 반환을 보여주기 때문에 해당 사용법은 문제가 아닙니다. 위치:

https://www.get-digital-help.com/how-to-use-the-take-function/

파트 4. 레이아웃에서 페이지 아래로 약 20-25% 정도입니다.

관련 정보