2014-01-09 2 views
1

У меня есть листы Excel, где тот же столбец может содержать значение с % форматирования, а также с десятичной системы счисления. Для уточнения: В Excel оба имеют такое же форматирование, но из-за разных версий Excel (местоположения) SSIS показывает им, как это: 1,3% или 0,814260540128523SSIS - если/другое выражение, чтобы превратить строку в число

Эти значения получены в виде строк, так что я» m пытается выяснить способ разделить% отформатированных значений на 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 help.

+0

также хорошая альтернатива. Спасибо. –

Смежные вопросы