2012-08-14 28 views
1

我有幾個相當不錯的Excel工作表(索引WorksheetID)基本上相當於平坦的數據庫表:行是記錄(在一個工作表中索引爲DataRecordID),列是字段(在一個工作表中索引爲DataFieldID),並且單元格包含適當記錄的字段值(Value)(或爲空)。標準化Excel工作表的簡單方法?

我感興趣的是打破他們分開,這樣的(多)記錄,以便我可以將它們導入的MS Access:

ID | WorksheetID | DataRecordID | DataFieldID | Value

我已經手工完成這一點。我發現編寫一個VBA腳本以突破錶單並(可選)刪除最終表中的記錄可能是一件直截了當的事情。

我的問題是:在我捲起袖子開始編碼之前,Excel 2010中是否已經有一個內置功能,我甚至不需要編寫腳本來執行此操作?

+1

不訪問有內置的某種標準器?我在97版本中使用了一個模糊的回憶。 – 2012-08-14 17:07:43

+0

@Marc B你說得對。讓我檢查一下。 – John 2012-08-14 17:09:12

+0

@Marc B我不認爲我導入表格時看到的標準化功能就足夠了。如果我願意,它可以讓我爲每個領域創建一個單獨的表格,但那不是我所需要的。不過好想! – John 2012-08-14 17:23:46

回答

0

如果數據源的佈局一致,則不需要腳本。描述基本過程(帶圖片!)here。然而,由於這是考慮一個單一的矩陣,你將需要一些額外的步驟:

內置到DataRecordIDs指示他們的工作表來源。假設您的第一個DataFieldID在A2中,請將公式(如=A2&"|WorksheetID")複製下來以適合作爲(新)ColumnB插入的列中的所有工作表。

在流程的第4步(嚮導中第3步的步驟2b)中,您需要分別添加每個工作表的相關範圍。

一旦你有了結果表,你需要插入一個新的ColumnB,並將文本應用到ColumnA,用其他|分隔到ColumnA。