2016-08-23 5 views
0

내 보고서에서이 표현을 가지고에 # 오류 및 NaN이를 방지하는 방법 :비율을 계산하기 위해 SSRS

= 
SUM(Fields!PaidLosses.Value)/
Lookup(Fields!YearNum.Value & Fields!MonthNum.Value, Fields!YearStartRisk.Value & Fields!MonthNum.Value, Fields!EarnedPremium.Value, "EarnedAllCoverages") 

내가 # 오류 및 NaN이 없어 충분한 데이터와 매개 변수를 선택하고합니다. NaN의 결과는 "-"값에 대한 "-"의 나눗셈입니다. 그리고 #Error의 결과는 0 값에 대한 "-"의 나눗셈입니다. enter image description here

+0

잘못된 값을 무시하기 위해 IIF를 사용해 보셨습니까? – FLICKER

답변

1

시도 :

당신이 안전하게 분열을 수행 할 this great answer 제공이 사용자 정의 코드를 사용할 수 없거나 nothing (SSRS의 널 (null))에 의해 임의의 숫자 또한

를 분할 할 수 없기 때문에이 발생

=SUM(Fields!PaidLosses.Value)/
IIF(
ISNOTHING(
    Lookup(Fields!YearNum.Value & Fields!MonthNum.Value, 
    Fields!YearStartRisk.Value & Fields!MonthNum.Value, 
    Fields!EarnedPremium.Value, "EarnedAllCoverages") 
) OR 
Lookup(Fields!YearNum.Value & Fields!MonthNum.Value, 
Fields!YearStartRisk.Value & Fields!MonthNum.Value, 
Fields!EarnedPremium.Value, "EarnedAllCoverages") = 0,1, 
Lookup(Fields!YearNum.Value & Fields!MonthNum.Value, 
Fields!YearStartRisk.Value & Fields!MonthNum.Value, 
Fields!EarnedPremium.Value, "EarnedAllCoverages") 
) 

.

=Code.SafeDivide(
    SUM(Fields!PaidLosses.Value), 
    Lookup(
    Fields!YearNum.Value & Fields!MonthNum.Value, 
    Fields!YearStartRisk.Value & Fields!MonthNum.Value, 
    Fields!EarnedPremium.Value, "EarnedAllCoverages" 
    ) 
) 
:

은 인수로 분자와 분모를 가진 함수를 호출

Public Function SafeDivide(ByVal Numerator As Decimal, ByVal Denominator As Decimal) As Decimal 
    If Denominator = 0 Then 
     Return 0 
    End If 
    Return (Numerator/Denominator) 
End Function 

그런 Report Properties.../Code 탭하여 테이블 릭스의/Report 메뉴에서 사용자 지정 코드 텍스트 영역에 다음 코드를 추가합니다

도움이되는지 알려주세요.

+0

내가 원하는 것을 정확하게하는 맞춤 코드! 대단히 감사합니다 Alejandro !!! – Oleg

관련 문제