2014-01-09 11 views
1

我有Excel表單其中相同的列可以包含與%格式化並且還與十進制表示法的值。 爲了闡明:在Excel兩者都具有相同的格式,但由於不同的Excel版本(位置)SSIS示出它們是這樣的: 1,3%0.814260540128523SSIS - 如果/ else表達式把字符串轉換成數

這些值進來作爲字符串所以我試圖找出一種方法來將%格式化的值除以100,並保留其他值。

最初我使用:

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

第二派生列但然後我意識到0,23%也是可能值。

我認爲這樣的事情應該這樣做,但我遇到了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 ed幫助。

+0

也是一個不錯的選擇。謝謝。 –

相關問題