附註: Microsoft Access 不支援使用套用的敏感度標籤匯入 Excel 數據。 做為因應措施,您可以先移除卷標再匯入,然後在匯入后重新套用卷標。 如需詳細資訊,請參閱 在 Office 中將敏感度標籤套用至您的檔案和電子郵件。
本文說明如何將數據從 Excel 移至 Access,並將數據轉換為關係型數據表,以便同時使用Microsoft Excel 和 Access。 摘要來說,Access 最適合用於擷取、儲存、查詢及共享數據,而Excel最適合用來計算、分析及可視化數據。
使用 Access 或 Excel 管理數據的兩篇文章,以及搭配 Excel 使用 Access 的前 10 個理由,討論哪一個程式最適合特定工作,以及如何一起使用 Excel 和 Access 來建立實用的解決方案。
當您將數據從 Excel 移至 Access 時,程式有三個基本步驟。
附註: 如需 Access 中數據模型和關聯的相關信息,請參閱 資料庫設計的基本概念。
步驟 1:將數據從 Excel 匯入至 Access
匯入數據是一項作業,如果需要一些時間來準備和清除數據,作業可能會更順暢。 匯入數據就像搬家一樣。 如果您在搬家之前清理並整理您的物品,將物品整理到新家中會容易得多。
在匯入之前先清除您的數據
在您將數據匯入 Access 之前,建議您先在 Excel 中:
-
將包含非原子數據的儲存格轉換 (即一個儲存格中的多個值) 為多個欄。 例如,「技能」欄中包含多個技能值的單元格,例如「C# 程序設計」、「VBA 程序設計」和「Web 設計」,應該分隔每個欄只包含一個技能值。
-
使用 TRIM 命令移除前置、結尾和多個內嵌空格。
-
拿掉非列印字元。
-
尋找並修正拼字和標點符號錯誤。
-
拿掉重複的欄位或重複的欄位。
-
確定數據域不包含混合格式,尤其是格式化為文字或日期格式化為數位的數位。
如需詳細資訊,請參閱下列 Excel 幫助主題:
附註: 如果您的數據清理需求很複雜,或您沒有時間或資源可以自行自動化程式,您可以考慮使用第三方廠商。 如需詳細資訊,請在網頁瀏覽器中搜尋您最愛的搜尋引擎所提供的「數據清理軟體」或「數據品質」。
選擇匯入時的最佳數據類型
在 Access 的匯入作業期間,您想要做出良好的選擇,以便在發生任何需要手動介入的) 轉換錯誤時,收到一些 (。 下表摘要說明當您將數據從 Excel 匯入 Access 時,Excel 數位格式和 Access 數據類型的轉換方式,並提供一些在匯入電子表格精靈中選擇的最佳數據類型的秘訣。
Excel 數位格式 |
Access 資料類型 |
註解 |
最佳作法 |
---|---|---|---|
文字 |
文字、備忘 |
Access 文字數據類型會儲存最多 255 個字元的英數位元數據。 Access 備忘數據類型會儲存最多 65,535 個字元的英數位元數據。 |
選擇 [備忘 ] 以避免截斷任何數據。 |
數位、百分比、分數、工程 |
Number |
Access 有一種數字數據類型,會根據欄位大小屬性 (位元組、整數、長整數、單數、雙數、小數) 而有所不同。 |
選擇 [雙 ],以避免任何數據轉換錯誤。 |
日期 |
日期 |
Access 和 Excel 都使用相同的序列日期數位來儲存日期。 在 Access 中,日期範圍較大:從 -657,434 (100 A.D.) (9999 年 12 月 31 日 A.D.) 2,958,465。 由於 Access 無法辨識 Macintosh) 版 Excel 中使用的 1904 年日期系統 (,因此您需要在 Excel 或 Access 中轉換日期以避免混淆。 如需詳細資訊,請參閱 變更日期系統、格式或兩位數年份解譯 和 匯入或連結至 Excel 活頁簿中的數據。 |
選擇 [日期]。 |
時間 |
時間 |
Access 和 Excel 都使用相同的數據類型來儲存時間值。 |
選擇 [時間],這通常是預設值。 |
貨幣、會計專用 |
貨幣 |
在 Access 中,貨幣數據類型會將數據精確地儲存為 8 位元組數位至四位小數位數,並用於儲存財務數據並防止值四捨五入。 |
選擇 [貨幣],這通常是預設值。 |
布林值 |
是/否 |
Access 對所有 Yes 值使用 -1,對所有 [否] 值使用 0,而 Excel 對所有 TRUE 值使用 1,對所有 FALSE 值使用 0。 |
選擇 [是/否],自動轉換基礎值。 |
超連結 |
超連結 |
Excel 和 Access 中的超連結包含您可以按兩下並追蹤的網址。 |
選擇 [超連結],否則Access預設可能會使用 [文字] 資料類型。 |
數據一旦在 Access 中,您就可以刪除 Excel 數據。 刪除原始 Excel 活頁簿之前,別忘了先備份原始活頁簿。
如需詳細資訊,請參閱 Access 説明主題 :匯入或連結至 Excel 活頁簿中的數據。
以簡單的方式自動附加數據
Excel 使用者遇到的一個常見問題是,將具有相同欄的數據附加到一個大型工作表中。 例如,您可能有一個在 Excel 中開始使用的資產追蹤解決方案,但現在已經逐漸成長為包含來自許多工作組和部門的檔案。 這些數據可能位於不同的工作表和活頁簿中,或是來自其他系統之數據摘要的文本檔中。 在 Excel 中沒有使用者介面命令或新增類似數據的簡單方法。
最佳的解決方案是使用 Access,您可以使用 [匯入電子表格精靈],輕鬆地將數據匯入並附加到一個數據表中。 此外,您可以將大量資料附加到一個數據表中。 您可以儲存匯入作業、依照排程新增作業Microsoft Outlook 工作,甚至使用宏將程序自動化。
步驟 2:使用 [數據表分析精靈] 將數據正規化
乍看之下,逐步完成數據正規化的程式似乎有點困難。 幸好,透過 [數據表分析精靈],在 Access 中將數據表正規化是一個更容易的程式。
1. 將選取的數據行拖曳到新數據表,並自動建立關聯
2. 使用按鈕命令重新命名數據表、新增主鍵、將現有的數據行設為主鍵,以及復原上一個動作
您可以使用此精靈執行下列動作:
-
將數據表轉換成一組較小的數據表,並自動建立數據表之間的主鍵和外鍵關聯。
-
將主鍵新增至包含唯一值的現有欄位,或建立使用 [自動編號] 數據類型的新標識符字段。
-
使用串聯更新自動建立關聯以強制執行引用完整性。 系統不會自動新增串聯刪除以避免意外刪除數據,但您可以稍後輕鬆新增串聯刪除。
-
搜尋新數據表以尋找重複或重複的數據 (,例如使用兩個不同電話號碼的同一位客戶) 並視需要更新。
-
備份原始數據表,並在其名稱中附加「_OLD」來重新命名。 然後,您會建立一個以原始數據表名稱重新建構原始數據表的查詢,讓任何以原始數據表為基礎的現有表單或報表都可與新的數據表結構搭配使用。
如需詳細資訊,請參閱 使用 [數據表分析器] 將您的數據正規化。
步驟 3:從 Excel 連線至 Access 數據
在 Access 中將數據正規化並建立重新建立原始數據的查詢或數據表之後,從 Excel 連線至 Access 數據是一個簡單的問題。 您的數據現在會以外部數據源的形式在 Access 中,因此可以透過資料連線連線到活頁簿,數據連線是用來尋找、登入及存取外部數據源的資訊容器。 線上資訊會儲存在活頁簿中,也可以儲存在連線檔案中,例如 Office 數據連線 (ODC) 檔案 (.odc 擴展名) 或數據來源名稱擴展名 (.dsn 擴展名) 。 聯機到外部數據之後,您也可以在 Access 中更新數據時,自動重新整理 (或從 Access 更新 Excel 活頁簿) 。
如需詳細資訊,請參閱 從外部數據源匯入數據 (Power Query)。
將您的數據匯入 Access
本節會逐步引導您完成將數據正規化的下列階段:將銷售人員和地址欄中的值分割成其最原子部分、將相關主體分隔至他們自己的數據表、將這些數據表從 Excel 複製並貼到 Access、在新建立的 Access 數據表之間建立重要關聯,以及在 Access 中建立並執行簡單的查詢以傳回資訊。
非正規化表單中的範例數據
下列工作表包含銷售人員列和 [位址] 欄中的非原子值。 這兩欄應該分割成兩個或多個獨立的欄。 此工作表也包含銷售人員、產品、客戶和訂單的相關信息。 此資訊也應依主體進一步分割成個別的數據表。
銷售人員 |
訂單識別碼 |
訂單日期 |
產品識別碼 |
數量 |
價格 |
客戶名稱 |
位址 |
手機 |
---|---|---|---|---|---|---|---|---|
Li, Laptop |
2349 |
3/4/09 |
C-789 |
3 |
$7.00 |
Fourth Coffee |
7007 Cornell St Redmond, WA 98199 |
425-555-0201 |
Li, Laptop |
2349 |
3/4/09 |
C-795 |
6 |
$9.75 |
Fourth Coffee |
7007 Cornell St Redmond, WA 98199 |
425-555-0201 |
埃文、埃倫 |
2350 |
3/4/09 |
A-2275 |
2 |
$16.75 |
冒險工廠 |
1025 哥倫比亞圓形 Kirkland, WA 98234 |
425-555-0185 |
埃文、埃倫 |
2350 |
3/4/09 |
F-198 |
6 |
$5.25 |
冒險工廠 |
1025 哥倫比亞圓形 Kirkland, WA 98234 |
425-555-0185 |
埃文、埃倫 |
2350 |
3/4/09 |
B-205 |
1 |
$4.50 |
冒險工廠 |
1025 哥倫比亞圓形 Kirkland, WA 98234 |
425-555-0185 |
Hance、Jim |
2351 |
3/4/09 |
C-795 |
6 |
$9.75 |
Contoso, Ltd. |
2302 美國華盛頓州 Bellevue 學院 98227 |
425-555-0222 |
Hance、Jim |
2352 |
3/5/09 |
A-2275 |
2 |
$16.75 |
冒險工廠 |
1025 哥倫比亞圓形 Kirkland, WA 98234 |
425-555-0185 |
Hance、Jim |
2352 |
3/5/09 |
D-4420 |
3 |
$7.25 |
冒險工廠 |
1025 哥倫比亞圓形 Kirkland, WA 98234 |
425-555-0185 |
Koch、Reed |
2353 |
3/7/09 |
A-2275 |
6 |
$16.75 |
Fourth Coffee |
7007 Cornell St Redmond, WA 98199 |
425-555-0201 |
Koch、Reed |
2353 |
3/7/09 |
C-789 |
5 |
$7.00 |
Fourth Coffee |
7007 Cornell St Redmond, WA 98199 |
425-555-0201 |
其最小部分的資訊:原子數據
使用本範例中的數據,您可以使用 Excel 中的 [ 文字到欄 ] 命令,將單元格 (的「原子」部分區隔,例如街地道址、縣/市、州/市及郵遞郵編碼) 分隔為獨立欄。
下表顯示分割成所有值的相同工作表中的新數據行。 請注意,[銷售人員] 欄中的資訊已分割成 [姓氏] 和 [名字] 欄,而且 [位址] 欄中的資訊已分割成 [街地道址]、[縣/市]、[縣/市] 及 [郵遞區號] 欄。 此數據為「第一個正規表單」。
姓氏 |
名字 |
|
街道地址 |
城市 |
州 |
郵遞區號 |
---|---|---|---|---|---|---|
李 |
耶魯 |
2302 學院 Ave |
貝利夫市 |
WA |
98227 |
|
亞當斯 |
艾倫 |
1025 哥倫比亞圓形 |
柯克蘭 |
WA |
98234 |
|
Hance |
俊文 |
2302 學院 Ave |
貝利夫市 |
WA |
98227 |
|
科赫 |
蘆葦 |
7007 Cornell St Redmond |
雷蒙市 |
WA |
98199 |
在 Excel 中將數據分成組織的主題
在將 Excel 工作表分割成銷售人員、產品、客戶和訂單的數據表後,接下來的數個範例數據表會顯示相同的資訊。 表格設計並非最終版本,但步入正軌。
[銷售人員] 數據表僅包含銷售人員的相關信息。 請注意,每筆記錄 (SalesPerson ID) 唯一標識符。 [訂單] 數據表中會使用 [銷售人員標識符] 值,將訂單連線至銷售人員。
售貨員 |
||
---|---|---|
銷售人員標識碼 |
姓氏 |
名字 |
101 |
李 |
耶魯 |
103 |
亞當斯 |
艾倫 |
105 |
Hance |
俊文 |
107 |
科赫 |
蘆葦 |
[產品] 資料表僅包含產品相關信息。 請注意,每筆記錄都有唯一標識 (產品標識碼) 。 產品標識碼值將用來將產品資訊連線至 [訂單詳細數據] 數據表。
產品 |
|
---|---|
產品識別碼 |
價格 |
A-2275 |
16.75 |
B-205 |
4.50 |
C-789 |
7.00 |
C-795 |
9.75 |
D-4420 |
7.25 |
F-198 |
5.25 |
[客戶] 資料表僅包含客戶的相關信息。 請注意,每筆記錄 (客戶標識碼) 具有唯一標識符。 客戶標識碼值將用來將客戶資訊連線至 [訂單] 資料表。
客戶 |
||||||
---|---|---|---|---|---|---|
客戶識別碼 |
名稱 |
街道地址 |
城市 |
州 |
郵遞區號 |
手機 |
1001 |
Contoso, Ltd. |
2302 學院 Ave |
貝利夫市 |
WA |
98227 |
425-555-0222 |
1003 |
冒險工廠 |
1025 哥倫比亞圓形 |
柯克蘭 |
WA |
98234 |
425-555-0185 |
1005 |
Fourth Coffee |
7007 Cornell St |
雷蒙市 |
WA |
98199 |
425-555-0201 |
[訂單] 數據表包含訂單、銷售人員、客戶和產品的相關信息。 請注意,每筆記錄都有唯一標識碼 (訂單標識碼) 。 此數據表中的某些信息必須分割成另一個包含訂單詳細數據的數據表,這樣[訂單] 數據表才包含四個數據行:唯一的訂單標識符、訂單日期、銷售人員標識碼和客戶標識符。 此處顯示的數據表尚未分割至 [訂單詳細數據] 資料表。
訂單 |
|||||
---|---|---|---|---|---|
訂單識別碼 |
訂單日期 |
銷售人員標識碼 |
客戶識別碼 |
產品識別碼 |
數量 |
2349 |
3/4/09 |
101 |
1005 |
C-789 |
3 |
2349 |
3/4/09 |
101 |
1005 |
C-795 |
6 |
2350 |
3/4/09 |
103 |
1003 |
A-2275 |
2 |
2350 |
3/4/09 |
103 |
1003 |
F-198 |
6 |
2350 |
3/4/09 |
103 |
1003 |
B-205 |
1 |
2351 |
3/4/09 |
105 |
1001 |
C-795 |
6 |
2352 |
3/5/09 |
105 |
1003 |
A-2275 |
2 |
2352 |
3/5/09 |
105 |
1003 |
D-4420 |
3 |
2353 |
3/7/09 |
107 |
1005 |
A-2275 |
6 |
2353 |
3/7/09 |
107 |
1005 |
C-789 |
5 |
訂單詳細數據,例如產品標識碼和數量,會移出 [訂單] 數據表,並儲存在名為 [訂單詳細數據] 的數據表中。 請記住,有 9 筆訂單,因此此數據表中有 9 筆記錄是合理的。 請注意,[訂單] 數據表 ([訂單標識符]) 有唯一標識符,這會從 [訂單詳細數據] 數據表中參照。
[訂單] 數據表的最終設計應如下所示:
訂單 |
|||
---|---|---|---|
訂單識別碼 |
訂單日期 |
銷售人員標識碼 |
客戶識別碼 |
2349 |
3/4/09 |
101 |
1005 |
2350 |
3/4/09 |
103 |
1003 |
2351 |
3/4/09 |
105 |
1001 |
2352 |
3/5/09 |
105 |
1003 |
2353 |
3/7/09 |
107 |
1005 |
[訂單詳細數據] 資料表不包含需要唯一值 (的數據行,也就是沒有主鍵) ,因此任何或所有數據行都可包含「備援」數據。 不過, (此規則適用於資料庫) 中的任何數據表,本數據表中的兩筆記錄應該不會完全相同。 在此數據表中,每筆記錄應有17筆記錄,每個記錄都以個別順序對應至產品。 例如,依序為 2349,三個 C-789 產品組成整個訂單的兩個部分之一。
因此,[訂單詳細數據] 數據表看起來應該類似下列專案:
訂單詳細數據 |
||
---|---|---|
訂單識別碼 |
產品識別碼 |
數量 |
2349 |
C-789 |
3 |
2349 |
C-795 |
6 |
2350 |
A-2275 |
2 |
2350 |
F-198 |
6 |
2350 |
B-205 |
1 |
2351 |
C-795 |
6 |
2352 |
A-2275 |
2 |
2352 |
D-4420 |
3 |
2353 |
A-2275 |
6 |
2353 |
C-789 |
5 |
從 Excel 複製數據並貼到 Access
現在,關於銷售人員、客戶、產品、訂單和訂單詳細數據的資訊已細分為 Excel 中的個別主題,您可以將該數據直接複製到 Access,並成為數據表。
在 Access 數據表與執行查詢之間建立關聯
將數據移至 Access 之後,您可以建立資料表之間的關聯,然後建立查詢以傳回各種主題的相關信息。 例如,您可以建立查詢,傳回訂單標識碼以及在 2009/3/05 到 3/08/09 之間輸入之訂單的銷售人員名稱。
此外,您可以建立表單和報表,讓數據輸入和銷售分析更容易。
需要更多協助嗎?
您可以隨時詢問 Excel 技術社群中的專家,或在社群中取得支援。