生成式 AI 出現之後,很多人處理 Excel 的第一反應,就是把資料貼進對話框,要求 AI 直接幫忙整理、分類、統計,甚至輸出報表。但如果你真的需要的是一套可重複、可維護、可驗證的資料流程,那麼更好的做法不是把原始資料交給 AI,而是把初始 M 語法、欄位規格、處理需求與輸出格式交給 AI,讓它協助你產生可直接貼進 Power Query 的語法。
這篇文章會用一組仿真去識別化的藥品許可證資料,完整示範如何從 Excel 載入資料、調整欄位屬性、建立 Codebook、撰寫給生成式 AI 的四段式需求、驗證 Power Query 結果,並逐步優化成一套可以長期重複使用的工作流。對經常處理藥證、產品、供應商、主成分、劑型或許可證資料的人來說,這套方法通常比直接把 Excel 丟給 AI 更穩、更安全,也更有效率。
這篇文章的核心不是「怎麼把 Excel 餵給 AI」,而是「怎麼把資料規格講清楚,讓 AI 幫你寫出能在 Power Query 穩定執行的流程」。
這篇文章適合誰? 如果你已經在用 Excel、正在學 Power Query,或經常需要反覆整理格式固定但欄位複雜的資料,這篇會比單純的「AI 幫我整理一下」更有長期價值。
為什麼不要直接把 Excel 資料丟給生成式 AI
很多人對生成式 AI 的期待,建立在一種很自然的想像上:既然 AI 會寫程式、會整理文字、會分析資料,那我是不是只要把 Excel 貼進去,它就能直接幫我整理完?問題在於,資料整理真正困難的地方,通常不是看懂資料,而是理解規則。
同樣一個欄位,有時候看起來是文字,其實是代碼,不能轉成數值;有時候看起來是一串成分名稱,實際上卻是多值欄位,需要依分隔符號拆開、去空白、排序、去重複,再重新串回;有時候公司名稱看似可以直接分組,但同一家公司在不同資料來源中可能有不同寫法;有時候某個欄位明明叫品名,卻根本不能拿來當唯一鍵。這些事情 AI 不是做不到,而是如果你沒有先把規則講清楚,它很容易用「看起來合理」但不符合你需求的方式處理。
更現實的問題是資料安全。很多工作資料不適合直接貼進外部工具,尤其當資料涉及許可證、產品代碼、供應商名單、內部公司資料或尚未公開的營運資訊時,把整份原始資料直接餵給 AI,風險通常比想像中高。你真正需要的,往往不是讓 AI 看見全部明細,而是讓它理解你的資料長什麼樣、有哪些欄位、欄位規則是什麼、你想做什麼轉換。
最後,是可維護性。今天你把資料貼給 AI,AI 幫你整理出一個結果;下次資料更新時,你通常又要重新貼一次、重新講一次、重新檢查一次。這不是自動化,而比較像把手工整理的一部分外包給 AI。真正有價值的做法,是把規則固定下來,做成 Power Query 查詢,之後資料一更新,只要重新整理即可。
更聰明的做法:把 AI 當成規格翻譯器
這篇文章最核心的觀點很簡單:不要把 AI 當成資料倉庫,要把它當成規格翻譯器。
你真正要交給 AI 的,不是整份原始資料,而是四種資訊:第一,你目前的初始 M 語法;第二,欄位規格;第三,你想做的處理需求;第四,你希望得到的輸出格式。AI 根據這些資訊,幫你寫出可直接貼進 Power Query 進階編輯器的語法,最後由 Excel 在你自己的環境裡執行。
這種分工看起來比較麻煩,但實際上更強。因為一旦你建立了這套工作流,之後很多資料整理任務都會變得非常穩定。你不必每次都重貼原始資料,不必每次都從頭解釋一次,也不必把資料安全與結果可追溯性交給運氣。你做的是把需求結構化,而不是把資料暴露出去。
實戰案例:仿真去識別化的藥品許可證資料
為了讓這篇文章不只停留在概念層次,下面直接用一組仿真去識別化的藥品許可證資料來示範。這份資料保留藥證資料的欄位結構與整理難點,同時對許可證字號、產品名稱、公司名稱與製造商名稱進行仿真匿名化處理。它看起來像真實資料,但不能回推出原始主體,適合拿來做 Excel、Power Query 與 AI 協作教學。
你可以先在 Excel 建立一張工作表,命名為 匿名藥證資料。考量手機版閱讀與首屏效能,本文只展示節錄資料;實際練習時可自行擴充列數。
| 許可證字號 | 中文品名 | 劑型 | 主成分略述 | 申請商名稱 | 製造廠國別 |
|---|---|---|---|---|---|
| 教藥製字第M000101號 | 霽寧胃舒錠 | 錠劑 | SODIUM BICARBONATE;;MAGNESIUM OXIDE;;DIASTASE | 霽川製藥工業股份有限公司 | TW |
| 教藥製字第M000118號 | 嵐清利敏液 | 內服液劑 | CHLORPHENIRAMINE MALEATE;;DL-METHYLEPHEDRINE HCL;;AMMONIUM CHLORIDE | 嵐汐藥品股份有限公司 | TW |
| 教藥製字第M000173號 | 曜舒感冒糖衣錠 | 糖衣錠 | ACETAMINOPHEN;;ETHENZAMIDE;;CAFFEINE ANHYDROUS;;DL-METHYLEPHEDRINE HCL;;CHLORPHENIRAMINE MALEATE | 曜安化學製藥股份有限公司 | TW |
| 教藥製字第M000244號 | 泓澤舒咳膠囊 | 膠囊劑 | GUAIACOL GLYCERYL ETHER (EQ TO GUAIFENESIN);;NOSCAPINE HCL;;DL-METHYLEPHEDRINE HCL | 泓澤藥品工業股份有限公司 | TW |
| 教藥製字第M000344號 | 霽寧胃舒錠 加強版 | 錠劑 | SODIUM BICARBONATE;;MAGNESIUM OXIDE;;DIASTASE;;SIMETHICONE | 霽川製藥工業股份有限公司 | TW |
| 教藥製字第M000388號 | 嵐清日舒錠 | 錠劑 | ACETAMINOPHEN;;CHLORPHENIRAMINE MALEATE;;CAFFEINE ANHYDROUS | 嵐汐藥品股份有限公司 | TW |
這組資料很適合拿來練習幾件事:主成分略述 是典型多值欄位,適合示範拆分、排序、去重複、重組;申請商名稱 會重複,適合做公司分組統計;中文品名 有相近名稱,但不適合直接當唯一鍵,這能幫助讀者理解為什麼資料整理不能只看表面欄位名稱。
第一步:先載入 Power Query,做好欄位屬性調整
很多人一拿到資料就急著貼進 AI,其實最好的第一步是自己先做基礎清理,也就是把資料載入 Power Query,確認欄位型別與基本屬性。這不只是為了整理資料,也是為了讓後續 AI 能理解你的起始點。
在 Excel 中把資料整理成表格後,點選「資料」→「從表格/範圍」,將資料載入 Power Query。進入查詢編輯器後,先做最基本的欄位型別設定。這一步很重要,因為你後面貼給 AI 的不是一張截圖,而是一段初始 M 語法。
欄位屬性調整時要注意什麼
許可證字號 必須明確設成文字,因為它屬於代碼欄位,不是數值。主成分略述 也應設為文字,因為它本質上是一個多值字串欄位。製造廠國別 雖然只有兩碼,但同樣應設為文字而非數值。這種型別設定看起來只是前置作業,但實際上會直接影響後續 AI 產出的語法品質。
初始 M 語法
let
來源 = Excel.CurrentWorkbook(){[Name="匿名藥證資料"]}[Content],
已變更類型 = Table.TransformColumnTypes(
來源,
{
{"許可證字號", type text},
{"中文品名", type text},
{"英文品名", type text},
{"適應症", type text},
{"劑型", type text},
{"主成分略述", type text},
{"申請商名稱", type text},
{"製造商名稱", type text},
{"製造廠國別", type text}
}
)
in
已變更類型
第二步:先建立最小可用的 Codebook
與其給 AI 一堆資料樣本,不如先給它一份欄位規格表。這份欄位規格表通常會被叫做 Codebook、譯碼簿或資料字典。它的目的不是描述每一筆資料,而是描述每一個欄位。也就是說,你要告訴 AI 的不是某幾列資料長什麼樣,而是每個欄位應該怎麼被理解、怎麼被處理。
| 欄位名稱 | 資料型別 | 是否可空白 | 格式規則 | 分隔符號 | 業務規則 |
|---|---|---|---|---|---|
| 許可證字號 | text | 否 | 固定前綴 + 代碼 | 無 | 不可轉數值,不建議拆掉前綴 |
| 中文品名 | text | 否 | 不固定 | 無 | 不建議當唯一鍵 |
| 劑型 | text | 否 | 分類值 | 無 | 可作分組與標準化 |
| 主成分略述 | text | 是 | 多值字串 | ;; | 拆分後需去空白、排序、去重複,再串回 |
| 申請商名稱 | text | 否 | 不固定 | 無 | 可作公司分組統計 |
| 製造廠國別 | text | 否 | 兩碼國別 | 無 | 可作國別分類 |
這張表看起來很簡單,但它往往比貼十列樣本更有價值。因為樣本只能讓 AI 猜規則,Codebook 則是直接把規則講明。
第三步:怎麼把需求講給生成式 AI
很多人對 AI 的提問還停留在一句話,例如「幫我整理這份資料」或「請幫我寫 Power Query」。這種問法不是完全不能用,但通常不夠精準。你真正需要的,是把需求拆成固定結構,讓 AI 有足夠資訊產出可直接執行的語法。
我建議至少分成四段:第一段是目前的初始 M 語法;第二段是欄位規格;第三段是處理需求;第四段是輸出需求。
可直接貼給生成式 AI 的四段式提示詞
第一段:目前初始 M 語法
let
來源 = Excel.CurrentWorkbook(){[Name="匿名藥證資料"]}[Content],
已變更類型 = Table.TransformColumnTypes(
來源,
{
{"許可證字號", type text},
{"中文品名", type text},
{"英文品名", type text},
{"適應症", type text},
{"劑型", type text},
{"主成分略述", type text},
{"申請商名稱", type text},
{"製造商名稱", type text},
{"製造廠國別", type text}
}
)
in
已變更類型
第二段:欄位規格
- 許可證字號:文字欄位,不可轉成數值,保留完整字串
- 中文品名:文字欄位,不建議當唯一鍵
- 劑型:文字欄位,可作分組
- 主成分略述:多值欄位,以 ;; 分隔,拆分後需 Trim、排序、去重複,再用 ;; 串接回來
- 申請商名稱:文字欄位,可用來分組統計
- 製造廠國別:兩碼國別代碼
第三段:處理需求
1. 清理主成分略述欄位:依 ;; 拆分、去除前後空白、排序、去重複,再重新用 ;; 串接
2. 新增一欄「主成分數量」,計算主成分略述拆分後有幾個成分
3. 新增一欄「同申請商許可證張數」,依申請商名稱統計同公司共有幾張許可證
4. 依劑型分組後,新增一欄「劑型筆數」
5. 最後保留原始資料列,不要先彙總成單一列
第四段:輸出需求
- 請直接產出可貼進 Power Query 進階編輯器的完整 M 語法
- 請保留以下欄位順序:
許可證字號、中文品名、劑型、主成分略述、主成分數量、申請商名稱、同申請商許可證張數、製造商名稱、製造廠國別、劑型筆數
- 若有需要,請加入中繼步驟名稱,方便後續除錯
第四步:拿到語法後,怎麼驗證結果
就算 AI 產出的 Power Query 語法可以執行,也不代表它一定正確。資料整理的專業,不在於讓語法跑起來,而在於確認它是不是照著你的規則跑。
我建議至少驗證三件事。第一,主成分略述 是否真的被標準化,例如是否已去除空白、排序一致、去除重複。第二,統計欄位是否正確 merge 回原始表,而不是只停留在分組表。第三,欄位型別是否仍維持正確,尤其是代碼欄與數量欄。
第五步:第一次做不好,怎麼優化流程
第一次拿到 AI 產生的語法,如果結果不夠好,很多人會直接重問一次。這種做法不是不能用,但效率很低,而且容易讓問題越滾越大。更好的做法,是像在和工程師協作一樣,針對特定問題補規格。
補規格的範例寫法
請保留你上一版的整體結構,但修正以下三點:
1. 主成分略述重組前,請先移除空白字串,再按字母排序
2. 主成分數量只計算非空白成分,不計入 null 或空字串
3. 劑型筆數請 merge 回原始資料表,讓每一列都可看到對應劑型的總筆數
其他欄位與順序維持不變,請重新提供完整 M 語法
這種方式通常比從頭再貼一次完整需求更有效,因為 AI 已經有前一版上下文,你只是在做更精準的修正。
第六步:把一次性操作變成可重複使用的工作流
如果你只是偶爾整理一張表,做到前面這裡已經夠用了。但如果你真正想提升資料整理能力,下一步應該是把這套流程固定下來,變成可反覆使用的工作流。
最基本的做法,是固定保留這幾樣東西:原始資料查詢、Codebook、主要清理查詢,以及輸出查詢。原始資料查詢負責把 Excel 資料讀進來並設定基本型別;Codebook 負責記錄欄位名稱、型別、是否可空白、分隔符號、唯一性與業務規則;主要清理查詢負責主成分拆分、排序、去重複、重新串接、統計與分組;輸出查詢則提供報表或後續分析使用。
實際可貼上的 Power Query 範例語法
下面這一段可以直接貼進 Power Query 進階編輯器。它會讀取 匿名藥證資料,清理 主成分略述 欄位,依 ;; 拆分、移除空白、排序、去重複、重組;之後計算主成分數量、依申請商統計許可證張數、依劑型統計筆數,最後再把統計結果合併回原始資料表。
let
來源 = Excel.CurrentWorkbook(){[Name="匿名藥證資料"]}[Content],
已變更類型 = Table.TransformColumnTypes(
來源,
{
{"許可證字號", type text},
{"中文品名", type text},
{"英文品名", type text},
{"適應症", type text},
{"劑型", type text},
{"主成分略述", type text},
{"申請商名稱", type text},
{"製造商名稱", type text},
{"製造廠國別", type text}
}
),
清理主成分 = Table.AddColumn(
已變更類型,
"主成分清單",
each
let
原始值 = [主成分略述],
拆分清單 = if 原始值 = null or Text.Trim(原始值) = "" then {} else Text.Split(原始值, ";;"),
去空白 = List.Transform(拆分清單, each Text.Trim(_)),
去除空字串 = List.Select(去空白, each _ <> ""),
去重複 = List.Distinct(去除空字串),
排序後 = List.Sort(去重複, Order.Ascending)
in
排序後,
type list
),
重組主成分 = Table.AddColumn(
清理主成分,
"主成分標準化",
each Text.Combine([主成分清單], ";;"),
type text
),
計算主成分數量 = Table.AddColumn(
重組主成分,
"主成分數量",
each List.Count([主成分清單]),
Int64.Type
),
申請商統計表 = Table.Group(
計算主成分數量,
{"申請商名稱"},
{{"同申請商許可證張數", each Table.RowCount(_), Int64.Type}}
),
劑型統計表 = Table.Group(
計算主成分數量,
{"劑型"},
{{"劑型筆數", each Table.RowCount(_), Int64.Type}}
),
合併申請商統計 = Table.NestedJoin(
計算主成分數量,
{"申請商名稱"},
申請商統計表,
{"申請商名稱"},
"申請商統計",
JoinKind.LeftOuter
),
展開申請商統計 = Table.ExpandTableColumn(
合併申請商統計,
"申請商統計",
{"同申請商許可證張數"},
{"同申請商許可證張數"}
),
合併劑型統計 = Table.NestedJoin(
展開申請商統計,
{"劑型"},
劑型統計表,
{"劑型"},
"劑型統計",
JoinKind.LeftOuter
),
展開劑型統計 = Table.ExpandTableColumn(
合併劑型統計,
"劑型統計",
{"劑型筆數"},
{"劑型筆數"}
),
移除中繼欄位 = Table.RemoveColumns(
展開劑型統計,
{"主成分清單", "主成分略述"}
),
重新命名欄位 = Table.RenameColumns(
移除中繼欄位,
{
{"主成分標準化", "主成分略述"}
}
),
重新排序欄位 = Table.ReorderColumns(
重新命名欄位,
{
"許可證字號",
"中文品名",
"英文品名",
"適應症",
"劑型",
"主成分略述",
"主成分數量",
"申請商名稱",
"同申請商許可證張數",
"製造商名稱",
"製造廠國別",
"劑型筆數"
}
)
in
重新排序欄位
一份真正實用的 AI 協作模板
如果你想把這套流程變成日常習慣,可以把下面這個模板存起來。之後每次要請 AI 幫你寫 Power Query,就直接照這個格式填空。
我現在要處理 Excel / Power Query 資料,請根據我提供的初始 M 語法、欄位規格、處理需求與輸出需求,直接產出可貼進 Power Query 進階編輯器的完整 M 語法。
【一、初始 M 語法】
(貼上目前進階編輯器內容)
【二、欄位規格】
- 欄位A:型別、是否可空白、格式規則、是否唯一、特殊說明
- 欄位B:型別、分隔符號、是否多值、處理方式
- 欄位C:...
【三、處理需求】
1. 要做哪些清理
2. 要做哪些分組或統計
3. 要不要保留原始資料列
4. 哪些欄位要新增
5. 哪些欄位要重新命名
【四、輸出需求】
- 最後保留哪些欄位
- 欄位順序
- 是否要拆成中繼查詢
- 是否要保留除錯用步驟名稱
常見問題
沒有原始資料,也能請 AI 幫我寫 Power Query 嗎?
可以,但前提是你要提供足夠清楚的規格,至少包含初始 M 語法、欄位型別、分隔符號、處理需求與輸出要求。對 AI 來說,規格通常比少量樣本更重要。
為什麼一定要先做欄位屬性調整?
因為型別會直接影響後續邏輯。像許可證字號這類代碼欄若沒先設定為文字,後續就可能在比對、排序或合併時出問題。
這種做法和直接把 Excel 貼給 AI,差別在哪裡?
差別在於可維護性與可重複性。直接貼資料通常只會得到一次性答案;把規格講清楚並寫成 Power Query 查詢,才會得到可重複執行、可驗證、可持續優化的流程。
結語:不要把資料交給 AI,要把規格交給 AI
如果你讀到這裡,只想帶走一句話,那就是:不要把資料交給 AI,要把規格交給 AI。
當你開始這樣做之後,生成式 AI 在資料整理中的角色會完全改變。它不再只是聊天工具,也不只是一次性的代工助手,而會變成你在 Excel 與 Power Query 工作流中的協作夥伴。你負責定義欄位、規則與輸出,AI 幫你把這些需求翻成 M 語法,Power Query 則負責在你的本地環境中穩定執行。
如果你真的想在 AI 時代提升資料整理能力,最值得投資的第一步,不是學會更多花式提示詞,而是現在就開始做兩件事:第一,為你常用的資料建立一份簡單的 Codebook;第二,把你每次的整理需求寫成可以交給 AI 的四段式規格。只要你開始這樣做,很快就會發現,你不只是學會了一種問 AI 的方法,而是真正建立了一套可複用、可維護、可擴充的資料整理系統。
捲動到此處時自動載入留言…