2012-03-25 90 views
0

我有一個Excel,像這樣的數據文件:SSIS:如何拆分Excel單元格的值轉換爲SQL列

ID | FieldA | FieldB 
1 ABC  A, B 
2 FGH  W, Z 
3 KLÑ  G, K 

我想要做的是使用SSIS並將此數據導入到SQL表。唯一的問題是,這個表中有一個這樣的結構:

ID | FieldA | FieldB1 | FieldB2 

所以,我需要做的是在Excel中拆分「FieldB」欄目,並把它變成FieldB1和FieldB2在SQL。

其結果將是這樣的:

ID | FieldA | FieldB1 | FieldB2 
1 | ABC | A  | B 
2 | FGH | W  | Z 
3 | KLÑ | G  | K 

就如何實現這一目標的任何想法?

回答

0

儘量選擇相關的範圍,然後運行以下命令:

Sub SplitColumn() 

    Dim strArr() as String 
    Dim cell as Range 

    For Each cell In Selection 
    cell.offset(0, 1).resize(1,2).value = split(cell.value,", ") 
    Next cell 

End Sub 

現在,複製和任何需要的地方貼上您的資料。

非VBA的選擇:在細胞D2 輸入以下公式:

=LEFT(C2,FIND(",",C2)-1) 

而在E2:

=RIGHT(C2,LEN(C2)-FIND(", ",C2)-1) 

和自動完成柱的其餘部分。

1

除非我錯過了一些東西,我只是跳過標題行,讓它正確導入後續數據。請花點時間分配列名並完成。

0

正如我所見here是你的例子的詳細解釋。

另一方面,您可以使用另一種方法 - 在Excel中使用Excel公式分割兩列中的一個excel列,並導入4列的文檔。

0

你可以使用派生列,並添加兩個新列。第一列表達式應該是這樣的:

SUBSTRING([FieldB],1,FINDSTRING([FieldB],",",1) - 1) 

,第二個是這樣的:

SUBSTRING([FieldB],FINDSTRING([FieldB],",",1) + 1,LEN([FieldB])- FINDSTRING([FieldB],"_",1))