데이터 시트를 다시 작성할 때 Excel COUNT 속도가 느려짐

데이터 시트를 다시 작성할 때 Excel COUNT 속도가 느려짐

저는 라이브 데이터베이스의 데이터를 새로 고칠 때 데이터 시트에 대한 참조가 손상되지 않도록 데이터 시트를 삭제하고 다시 생성하는 Excel 추가 기능을 사용하고 있습니다. COUNT('DataSheet'!A:A) 수식을 사용하여 열 머리글 행을 뺀 데이터 행 수를 계산합니다. 데이터를 새로 고치지 않으면 거의 즉시 다시 계산되지만 추가를 사용하여 데이터를 새로 고치면 수식 계산이 완료될 때까지 카운트가 천천히 증가합니다. 통합 문서의 속도를 크게 저하시키는 다른 유사한 수식을 사용해야 합니다.

해결 방법을 생각할 수 있지만 COUNT가 정상적으로 다시 계산되고, 데이터가 새로 고쳐질 때 다시 계산할 때 동작의 차이를 일으키는 원인이 무엇인지 알아야 합니다. 현재 데이터는 새로 고침 전과 후의 행 수가 동일하며 형식이 지정된 범위는 데이터보다 길지 않습니다.

편집: 이것이 Excel이 메모리에서 활성화/채워진 셀을 처리하는 방식과 관련이 있는지 궁금합니다.

답변1

@TheGreatO96을 환영합니다.

COUNT() 대신 COUNTA()를 사용해 보십시오. 그러나 이것이 너무 많은 도움이 될지는 거의 의심스럽습니다. 추가 기능에서 최적화할 사항이 몇 가지 있는 것 같습니다. 데이터베이스 새로 고침은 일시적인 작업이며 일반적으로 새로 고침 없이는 트리거되지 않는 재계산을 트리거합니다. OFFSET, INDIRECT, NOW 또는 심지어 같은 휘발성 함수를 사용하는 경우조건부 서식, 큰 통합 문서에서 작업이 중단됩니다. 단일 셀에서 COUNT(...) 업데이트 값을 볼 수 있다는 사실은 매크로가 크게 지연된다는 의미일 수 있습니다. 코드에서 몇 가지 사항을 조정해 볼 수 있습니다.

  • 재계산을 비활성화하여 매크로를 시작하세요. 나머지 코드를 실행합니다. 재계산을 다시 켜십시오.

  • 화면 업데이트를 비활성화하여 매크로를 시작하십시오. 나머지 코드를 실행합니다. 화면 업데이트를 켜세요.

  • 이벤트를 비활성화하여 매크로를 시작하십시오. 나머지 코드를 실행합니다. 이벤트를 다시 켜세요.

추신. 한번은 상대 이름이 지정된 범위를 선호하여 OFFSET 함수를 제거하여 매크로 실행 속도를 거의 2배 정도 높인 적이 있습니다.

관련 정보