2014-01-09 4 views
1

같은 열에 % 서식을 가진 및 십진수 표기의 서식이있는 Excel 시트가있을 수 있습니다. 는 명확히하기 위해 : Excel에서 모두 동일한 포맷을 가지고 있지만 차이로 인해 Excel 버전 (위치)에 SSIS는 다음과 같이 그들을 보여줍니다 1,3 %이 값은 문자열 그래서 '로 올 또는 0.814260540128523SSIS - 문자열을 숫자로 바꾸는 if/else 식

% 서식이 지정된 값을 100으로 나누고 나머지는 그대로 두는 방법을 찾으려고합니다. 번째 열 유도

(DT_R8)[F5_CONV] < 1 ? (DT_R8)[F5_CONV] : (DT_R8)[F5_CONV]/100 

을하지만 I는 % 0,23도 가능한 값인 것을 깨달았다

처음에 I가 사용된다.

이렇게해야한다고 생각하지만 DT_WSTR 및 DT_R8 유형에 문제가 있습니다.

(F5 == "" || ISNULL(F5)) ? NULL(DT_WSTR,40) : FINDSTRING(F5,"%",1) > 0 
? (DT_WSTR,40)REPLACE(REPLACE(F5,".",","),"%","")/100 
: (DT_WSTR,40)REPLACE(F5,".",",") 

희망을 보내 주시면 도와 드리겠습니다. 감사합니다.

답변

1
(F5 == "" || ISNULL(F5)) ? NULL(DT_WSTR,40) : FINDSTRING(F5,"%",1) > 0 
? (DT_WSTR,40)((DT_R8)REPLACE(REPLACE(F5,".",","),"%","")/100) 
: (DT_WSTR,40)REPLACE(F5,".",",") 
+0

감사합니다.이 트릭을 수행하는 것처럼 보입니다. –

1

스크립트 구성 요소를 사용할 수도 있습니다. 다음은 빠른 해결책입니다. null에 대한 유효성 검사를 추가해야 할 수도 있습니다. 저희에게 알려 주시면 enter image description here 에드 헬프입니다.

+0

또한 좋은 대안입니다. 고맙습니다. –