Excel이 값을 제대로 다시 계산하지 않습니다.

Excel이 값을 제대로 다시 계산하지 않습니다.

값이 포함된 Excel 시트가 있습니다(이 시트는 사용자 정의 Perl 스크립트에 의해 생성되었지만 여기에 문제가 있는 것 같지 않습니다). 그 안에는 다음과 같은 공식이 있습니다.

=sum(indirect(concatenate(address(6,column()),":",address(17,column()))))

SUM()이 공식의 목적은 현재 열의 6행과 17행 사이에 있는 셀의 수를 제공하는 것입니다 .G숫자 스프레드시트, 파일을 열자마자 작동합니다. 하지만 Excel에서는(둘 다 2003그리고2007), 파일을 열면 #VALUE!이 공식이 포함된 필드에 오류가 표시되며, 이는 INDIRECT값을 사용한 호출로 $B$6:$B$17인해 오류가 발생한다는 것을 나타냅니다.

여기에 문제의 꼬임이 있습니다. (을 통해 F2) 필드를 편집하고아니요변경하고 Enter 키를 누르면 값이 업데이트됩니다. 또한 파일을 .xlsx(Excel 2007 형식)로 저장하면 열 때 값이 업데이트되는 것 같습니다. 불행하게도 내가 사용하고 있는 모듈로 을 생성하는 것이 가능한지 확신할 수 없으며 xlsx아마도 많은 고객이 어쨌든 그것을 사용할 수 없을 것입니다.

어떤 제안이 있으십니까? 각 클라이언트에 대해 매달 200개 이상의 파일을 편집하는 것은 불가능할 것이므로 누락된 부분이 있으면 알려 주시기 바랍니다.

답변1

바닐라 Sum 함수를 삽입하면 작동합니까? 즉, 간접/주소 조합의 구성 요소에서 문제를 추적할 수 있습니까?

합산할 범위를 생성하기 위해 OFFSET을 사용해 보셨나요? 예를 들어:

=SUM(OFFSET(B6,0,0,12,1))

답변2

빨대를 쥐고 ​​있을 수도 있지만 R1C1 스타일 참조를 시도해 볼 수 있습니다.

=SUM(INDIRECT("R["&7-ROW()&"]C:R["&17-ROW()&"]C",FALSE))

또는 수식이 항상 19행에 있는 경우 참조 스타일을 R1C1로 설정합니다.

Application.ReferenceStyle = xlR1C1

그런 다음 수식을 다음과 같이 삽입할 수 있습니다.

=SUM(R[-13]C:R[-2]C)

업데이트:

다음을 사용하면 ReferenceStyle을 설정할 필요가 없습니다.

<YourCellReference>.FormulaR1C1 = "=SUM(R[-13]C:R[-2]C)"

답변3

다음을 사용하여 전체 스프레드시트를 강제로 다시 계산할 수도 있습니다.

http://msdn.microsoft.com/en-us/library/bb687891.aspx

스프레드시트의 이름을 바꾼 다음 다시 이름을 바꾸는 매크로는 제대로 작동합니다. 어쩌면 진주 스크립트 끝에서 실행할 수 있을까요? 저는 사실 진주에 대해서 잘 모릅니다. 죄송합니다.

또는 단축키 CTRL+ALT+F9를 사용하고 작동하는 경우 이 기능과 함께 VBA를 사용합니다.응용 프로그램.계산전체

답변4

Excel에서는 Tools | Calculations계산 모드를 설정할 수 있습니다. '자동'으로 설정하면 Excel은 파일을 열 때에도 모든 필드의 수식 결과를 자동으로 업데이트해야 합니다.

계산 설정은 개별 워크시트별로 설정할 수도 있으므로 Perl 스크립트가 수동 업데이트 모드를 설정하는 것이 가능할 수도 있습니다.

관련 정보