다음 구조의 긴 수식이 있습니다.
=IF(!X!<>0,!X!+A1,"")
어디 ! X! 매우 긴 공식입니다.
! X 반복을 피하는 해결책이 있습니까? 두번? 두 가지 이유가 필요합니다.
- 시트 사용자가 수식을 읽을 수있게하려면
- 처리 시간을 줄이려면
도움을 주셔서 감사합니다.
고마워, Dio
다음 구조의 긴 수식이 있습니다.
=IF(!X!<>0,!X!+A1,"")
어디 ! X! 매우 긴 공식입니다.
! X 반복을 피하는 해결책이 있습니까? 두번? 두 가지 이유가 필요합니다.
도움을 주셔서 감사합니다.
고마워, Dio
답변:
또 다른 방법은 이중 반전 을 사용하는 것입니다 .
=IFERROR(1/(1/really_long_formula)+A1,"")
는 IF really_long_formula이 평가 0 , 당신은 0으로 나누기를 얻을 것하고는 IFERROR()
그것을 잡을 것입니다!
이 요구 사항을 처리 하는 일반적인 방법 (및 최선의 방법) 은 도우미 셀을 사용하는 것입니다.
1/1/x
Excel에서 100,000 개의 난수로 여러 번 테스트 했으며 반올림 오류가있는 시간의 1.4 % 만 발생했습니다. 내가 찾은 최대 상대 오차는 1.6e-16이며 실제로는 0입니다. 또한 흥미롭게도 정수는 반올림 오류를 표시하지 않습니다 (0에서 1e14까지 여러 범위에서 테스트 됨). 따라서이 답변은 순도 / 청결성 관점에서 눈살을 찌푸 릴 수 있지만 실제 계산 관점에서는 그렇지 않습니다.
분명한 대답은 공식을 메인 시트에서 멀리 떨어진 작업 셀에 넣는 것입니다. 예를 들어를 사용하는 경우 다음 H1
과 같이 설정하십시오.
=!X!
그러면 수식이됩니다.
=IF(H1<>0,H1+A1,"")
이것은 다른 프로그래밍 언어에서 수행하는 작업의 전형입니다.
1/(1/x)
가 항상 정확하지 않을 수 있습니다 ( 항상 정확하게 동일하지는 않음 x
). 더 일반적으로 적용 할 수 없습니다 (예 : 0보다 작은 지 확인). (댓글은 @ LưuVĩnhPhúc의 답변으로 수락되었습니다.)
결과가 ""
틀린 경우에 정말로 필요 합니까? 만에 셀이 필요한 경우 모양 빈을 (예를 들어, 당신은 같은 것을 사용하지 않습니다 =ISNUMBER()
, 당신은 사용할 수 있습니다 나중에에를) 조건부 서식을 거짓 경우 내용을 숨 깁니다.
셀에 적용 할 조건부 서식 은 아무것도 표시하지 않도록 다음 ""
과 같이 사용자 정의 형식입니다 (포르투갈어로 있지만 아이디어를 얻음).
셀의 수식은 예상대로 간단 =!X!+A1
합니다.
조건부 서식 수식 은 일 수 =!X!=0
있지만 !X!
원하지 않는 ( "포인트 2")를 다시 계산 해야합니다. 그것은 사용하여 세포 자체를 활용하는 것이 좋습니다 =B1=A1
(우리의 셀을한다 가정하면 B1 ) - 그 의미 것이다 !X! = 0
.
셀 내용이 실제로 필요하더라도 ""
워크 시트에서 일반적으로 약간의 변경을 수행하여이 방법을 사용할 수 있습니다. 이 경우 상황을 설명하는 의견을 남겨주십시오.
도움말 열을 추가 할 수 없습니다. 어쨌든 고마워
도우미 열을 추가 할 수없는 경우 전체 워크 시트를 추가하지 않겠습니까? 여기에는 몇 가지 장점이 있습니다.
=IF(X<>0,X+A1,"")
D5
.helper!D5
기본 시트에서와 같이 셀을 지정하십시오 .내가 볼 수있는 단점은 다음과 같습니다.
sheetname!D5
대신 메인 시트에서 이름이없는 셀을 참조해야합니다 D5
.장점과 단점을 비교해 보면 많은 사용 사례에서 이것이 좋은 솔루션이라고 생각합니다. 내가 생각할 수는 없지만 최적이 아닌 상황이 있습니다.
아직 제안되지 않은 옵션은 사용자 정의 함수를 작성하는 것입니다. 메뉴 막대에서 개발자 탭을 켜고 (google it) 모듈을 만들어야합니다.
public function udf_myCalc(ValueToAdd as double)
dim myvar as double
dim udf_myCalc as double
myvar = .. put the logic of !X! in here
if myvar<>0 then
udf_myCalc = myvar + ValueToAdd
else
udf_myCalc = ValueToAdd
end if
end function
그런 다음 수식 입력 줄에서
=udf_myCalc(A1)
참고 :이 파일은 이제 .xlsx (매크로 포함) 파일이되며 매크로는 악의적 인 목적으로 사용될 수 있으며 일부 전자 메일 필터는이를 차단하므로 회사 네트워크에서 추가 권한이 필요할 수 있습니다. 함수는 문서화되지 않았으므로 함수가 수행하는 작업에 대한 메모를 제공해야하며 모든 함수 udf_xxxxx를 호출하여 내장 함수가 아님을 분명히 알 수 있습니다.
UDF와 함께 다른 GOTCHA도 있습니다. 몇 가지 유용한 팁은이 링크를 참조하십시오. http://www.decisionmodels.com/calcsecretsj.htm
To reduce the process time
결과를 어딘가에 저장해야합니다. 그렇지 않으면 조건이 일치 할 때 Excel에서 값을 다시 계산해야합니다. 부서는 또한 매우 비용이 많이 드는 작업입니다