注意
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 個字元的英數字元資料。 | 選擇 [備忘] 以避免截斷任何資料。 |
| 數字、百分比、分數、科學 | 數字 | Access 有一種數字資料類型,會根據欄位大小屬性 (位元組、整數、長整數、單數、雙數、小數) 而有所不同。 | 選擇 [雙數] 以避免任何資料轉換錯誤。 |
| 日期 | 日期 | Access 和 Excel 都使用相同的序列日期數字來儲存日期。 在 Access 中,日期範圍較大:從 -657,434 (西元 100 年 1 月 1 日) 到 2,958,465 (西元 9999 年 12 月 31 日)。 由於 Access 無法辨識 1904 年日期系統 (在 Macintosh 版 Excel 中使用),因此您需要在 Excel 或 Access 中轉換日期以避免混淆。 如需詳細資訊,請參閱變更日期系統、格式,或兩位數年份解譯和匯入或連結至 Excel 活頁簿中的資料。 |
選擇 [日期]。 |
| 時間 | 時間 | Access 和 Excel 都使用相同的資料類型來儲存時間值。 | 選擇 [時間],這通常是預設值。 |
| 貨幣、會計 | 貨幣 | 在 Access 中,貨幣資料類型會將資料儲存為 8 位元組數字至小數點第四位,並用於儲存財務資料並防止將值四捨五入。 | 選擇 [貨幣],通常是預設值。 |
| 布林值 | 是/否 | Access 對所有 Yes 值使用 -1,對所有 No 值使用 0,而 Excel 對所有 TRUE 值使用 1,對所有 FALSE 值使用 0。 | 選擇 [是/否],自動轉換基礎值。 |
| 超連結 | 超連結 | Excel 和 Access 中的超連結包含您可以按一下並追蹤的網址。 | 選擇 [超連結],否則 Access 預設可能會使用 [文字] 資料類型。 |
資料一旦在 Access 中,您就可以刪除 Excel 資料。 刪除原始 Excel 活頁簿之前,別忘了先備份。
如需詳細資訊,請參閱匯入或連結到 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 中建立並執行簡單的查詢以傳回資訊。
非正常化表單中的範例資料
下列工作表包含「銷售人員」欄和「地址」欄中的非原子值。 這兩欄應該分割成兩個或多個獨立的欄。 此工作表也包含銷售人員、產品、客戶和訂單的相關資訊。 此資訊也應依主體進一步分割成個別的資料表。
| 銷售人員 | 訂單識別碼 | 訂單日期 | 產品 ID | 數量 | 價格 | 客戶名稱 | 位址 | 手機 |
|---|---|---|---|---|---|---|---|---|
| Li,Yale | 2349 | 3/4/09 | C-789 | 3 | $7.00 | Fourth Coffee | 7007 Cornell St Redmond, WA 98199 | 425-555-0201 |
| Li,Yale | 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 Columbia Circle Kirkland, WA 98234 | 425-555-0185 |
| 埃倫.亞當 | 2350 | 3/4/09 | F-198 | 6 | $5.25 | 冒險工廠 | 1025 Columbia Circle Kirkland, WA 98234 | 425-555-0185 |
| 埃倫.亞當 | 2350 | 3/4/09 | B-205 | 1 | $4.50 | 冒險工廠 | 1025 Columbia Circle Kirkland, WA 98234 | 425-555-0185 |
| 吉姆.漢斯 | 2351 | 3/4/09 | C-795 | 6 | $9.75 | Contoso, Ltd. | 2302 Harvard Ave Bellevue, WA 98227 | 425-555-0222 |
| 吉姆.漢斯 | 2352 | 3/5/09 | A-2275 | 2 | $16.75 | 冒險工廠 | 1025 Columbia Circle Kirkland, WA 98234 | 425-555-0185 |
| 吉姆.漢斯 | 2352 | 3/5/09 | D-4420 | 3 | $7.25 | 冒險工廠 | 1025 Columbia Circle Kirkland, WA 98234 | 425-555-0185 |
| 科霍.李德 | 2353 | 3/7/09 | A-2275 | 6 | $16.75 | Fourth Coffee | 7007 Cornell St Redmond, WA 98199 | 425-555-0201 |
| 科霍.李德 | 2353 | 3/7/09 | C-789 | 5 | $7.00 | Fourth Coffee | 7007 Cornell St Redmond, WA 98199 | 425-555-0201 |
其最小部分的資訊:原子資料
使用本範例中的資料,您可以使用 Excel 中的 [將文字轉換為資料行] 命令,將儲存格的「原子」部分分隔 (例如街道地址、縣/市、州/市及郵遞區號) 為獨立欄。
下表顯示分割成所有原子值的相同工作表中的新資料行。 請注意,「銷售人員」欄中的資訊已分割成「姓氏」和「名字」欄,而且「地址」欄中的資訊已分割成「街道地址」、「縣/市」、「州/市」及「郵遞區號」欄。 此資料在「第一個標準表單」中。
| 姓氏 | 名字 | 街道地址 | 城市 | 狀態 | 郵遞區號 |
|---|---|---|---|---|---|
| 李 | 耶魯 | 2302 Harvard Ave | 貝利夫市 | WA | 98227 |
| 亞當斯 | 艾倫 | 1025 Columbia Circle | 柯克蘭 | WA | 98234 |
| 漢斯 | 俊文 | 2302 Harvard Ave | 貝利夫市 | WA | 98227 |
| 科霍 | 李德 | 7007 Cornell St Redmond | 雷蒙市 | WA | 98199 |
在 Excel 中將資料分成有組織的主題
將 Excel 工作表分割成銷售人員、產品、客戶和訂單的資料表後,接下來的數個範例資料表會顯示相同的資訊。 表格設計並非最終版本,但步入正軌。
「銷售人員」資料表僅包含銷售人員的相關資訊。 請注意,每筆記錄都有唯一識別碼 (銷售人員識別碼)。 「訂單」資料表中會使用「銷售人員識別碼」值,將訂單連線至銷售人員。
| 銷售人員 | ||
|---|---|---|
| 銷售人員識別碼 | 姓氏 | 名字 |
| 101 | 李 | 耶魯 |
| 103 | 亞當斯 | 艾倫 |
| 105 | 漢斯 | 俊文 |
| 107 | 科霍 | 李德 |
「產品」資料表僅包含產品相關資訊。 請注意,每筆記錄都有唯一識別碼 (產品識別碼)。 產品識別碼值將用來將產品資訊連結至「訂單詳細資料」資料表。
| 產品 | |
|---|---|
| 產品 ID | 價格 |
| A-2275 | 16.75 |
| B-205 | 4.50 |
| C-789 | 7.00 |
| C-795 | 9.75 |
| D-4420 | 7.25 |
| F-198 | 5.25 |
1.「客戶」資料表僅包含關於客戶的資訊。 請注意,每筆記錄具有唯一識別碼 (客戶識別碼)。 客戶識別碼值將用來將客戶資訊連線至「訂單」資料表。
| 客戶 | ||||||
|---|---|---|---|---|---|---|
| 客戶識別碼 | 名稱 | 街道地址 | 城市 | 狀態 | 郵遞區號 | 手機 |
| 1001 | Contoso, Ltd. | 2302 Harvard Ave | 貝利夫市 | WA | 98227 | 425-555-0222 |
| 1003 | 冒險工廠 | 1025 Columbia Circle | 柯克蘭 | WA | 98234 | 425-555-0185 |
| 1005 | Fourth Coffee | 7007 Cornell St | 雷蒙市 | WA | 98199 | 425-555-0201 |
「訂單」資料表包含訂單、銷售人員、客戶和產品的相關資訊。 請注意,每筆記錄都有唯一識別碼 (訂單識別碼)。 此資料表中的某些資訊必須分割成另一個包含訂單詳細資料的資料表,這樣「訂單」資料表才包含四個資料行:唯一的訂單識別碼、訂單日期、銷售人員識別碼和客戶識別碼。 此處顯示的資料表尚未分割為「訂單詳細資料」資料表。
| 訂單 | |||||
|---|---|---|---|---|---|
| 訂單識別碼 | 訂單日期 | 銷售人員識別碼 | 客戶識別碼 | 產品 ID | 數量 |
| 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 產品組成整個訂單的兩個部分之一。
因此,「訂單詳細資料」資料表看起來應該類似:
| 訂單詳細資料 | ||
|---|---|---|
| 訂單識別碼 | 產品 ID | 數量 |
| 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 到 2009/3/08/ 之間輸入之訂單的銷售人員名稱。
此外,您可以建立表單和報表,讓資料輸入和銷售分析更容易。
需要更多協助嗎?
你隨時可以向 Excel 技術社群 的專家詢問,或在 社群中獲得支援。