Excel SSIS—将字符串转换为数字的if/else表达式

Excel SSIS—将字符串转换为数字的if/else表达式,excel,ssis,formatting,expression,Excel,Ssis,Formatting,Expression,我有Excel表格,其中同一列可以包含格式为%的值,也可以包含十进制符号为的值。 澄清:在Excel中,两者的格式相同,但由于Excel版本(位置)不同,SSI显示如下: 1,3%或0.814260540128523 这些值以字符串的形式输入,所以我试图找出一种方法,将%格式的值除以100,其他值保持不变 最初我使用: (DT_R8)[F5_CONV] < 1 ? (DT_R8)[F5_CONV] : (DT_R8)[F5_CONV] / 100 希望你能帮我。 谢谢。您也可以使用脚本组

我有Excel表格,其中同一列可以包含格式为%的值,也可以包含十进制符号为的值。 澄清:在Excel中,两者的格式相同,但由于Excel版本(位置)不同,SSI显示如下: 1,3%0.814260540128523

这些值以字符串的形式输入,所以我试图找出一种方法,将%格式的值除以100,其他值保持不变

最初我使用:

(DT_R8)[F5_CONV] < 1 ? (DT_R8)[F5_CONV] : (DT_R8)[F5_CONV] / 100
希望你能帮我。
谢谢。

您也可以使用脚本组件。这里有一个快速的解决方案;您可能需要为null添加验证。如果你需要帮助,请告诉我们

(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,".",",") 
(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,".",",")