跳到主要內容跳到頁尾

客人留言怎麼整理:用 AI 函式分類、摘要,地址欄交給 REGEX

6 分鐘閱讀Lv.3 中級摘要與日期

用一份茶飲店客人留言和地址資料,示範 AI 函式做留言分類與摘要,再示範從自由文字的地址取出縣市時,為什麼改用 REGEXEXTRACT 加 IFERROR 比較穩,並整理什麼任務適合 AI 函式、什麼任務該用確定性函式。

發布 更新

文章目錄

茶飲店的外送平台每週會匯出一批客人留言和地址,這份範例資料有五則留言、六筆地址,要整理成「每則留言屬於哪一類」「各類有幾則」「地址的縣市」三樣東西。這篇就用 AI 函式和傳統函式各做一次,看看哪一件事該交給誰。AI 函式怎麼輸入、怎麼生成,以及需要哪些方案,在 AI 函式入門 講過了,這邊直接開工。

留言分類

留言放在 A1:B6,C 欄要放分類:

AB
1編號評論
21蘋果紅茶很香,但今天等了四十分鐘
32杯子漏水,整個袋子都濕了
43一杯八十五有點貴,不過味道不錯
54店員很親切,會主動問甜度
65等很久,而且價格又漲了

用 AI 的話,C2 這樣寫:

Google 試算表公式
fx

請 Gemini 從固定選項挑一個分類

=AI( "這是茶飲店的客人留言。請只從這四個詞挑一個回答,不要加標點或解釋:出餐速度、價格、服務、其他。", B2 )

這條提示我花心思的地方有兩處。一是把選項直接列出來,不然它可能自己發明「口味」「包裝」這些標籤,之後很難統計。二是要求不加標點和解釋,因為輸出是文字,多一個句號,之後 COUNTIF 就對不上了。

留言 2「杯子漏水」和留言 5「等很久,而且價格又漲了」,我自己都不確定該歸哪一類。這就是 AI 適合的地方:規則講不清楚、但人一看就有感覺的判斷。不過它每次的答案不保證一樣,所以我會把這欄當成「第一版標籤」,不當成最終答案。即使提示限定了四個選項,AI 偶爾還是會出現清單外的字(例如「抱怨出餐速度」「包裝問題」),統計前要先檢查標籤,見 陷阱篇。

規則寫得出來的時候,用 IFS

如果你的分類其實只是看有沒有某幾個字,那用確定性的函式更好。REGEXMATCH 判斷文字有沒有符合,IFS 由上往下挑第一個成立的(IFS 的細節在 IFS 與 SWITCH 實戰):

Google 試算表公式
fx

看留言有沒有出現特定字,決定分類

=IFS( REGEXMATCH(B2, "等|久|慢"), "出餐速度", REGEXMATCH(B2, "貴|價"), "價格", TRUE, "其他" )

C2:C6 填滿之後會得到:

列評論分類
2蘋果紅茶很香,但今天等了四十分鐘出餐速度
3杯子漏水,整個袋子都濕了其他
4一杯八十五有點貴,不過味道不錯價格
5店員很親切,會主動問甜度其他
6等很久,而且價格又漲了出餐速度

第 6 列同時提到慢和貴,IFS 只回第一個成立的,所以是「出餐速度」。第 3 列的「漏水」我沒寫進規則,掉進「其他」。這就是規則版的樣子:結果每次一樣,但你沒預想到的說法它就接不住。另外要注意,這條規則只有出餐速度、價格、其他三類,AI 的提示多了「服務」:第 5 列(留言 4)「店員很親切」在 IFS 是「其他」,AI 則可能答「服務」。兩邊的分類標準不同,不能直接逐列比較。

要統計各類有幾則,就用 COUNTIF:

Google 試算表公式
fx

數出餐速度類有幾則

=COUNTIF(C2:C6, "出餐速度")

結果是 2。這個 COUNTIF 不管 C 欄是 IFS 還是 AI 生成的都能用,只要標籤字一模一樣,所以前面才要把 AI 的輸出限定在固定選項。

摘要一批留言

摘要是 AI 最順手的任務,因為沒有標準答案,也沒有確定性的函式做得到。範圍參數可以直接給一整欄:

Google 試算表公式
fx

把 B2:B6 的留言摘成一句話

=AI("用一句話摘要這些客人留言的共同抱怨與稱讚,不要超過四十個字。", B2:B6)

摘要的字我就不在這裡列了,因為每次跑出來的措辭可能不同。我的習慣是把摘要當成「讀留言前的導讀」,真的要寫進週報的數字,像各類幾則,還是回頭用上一節的 COUNTIF 算。

從地址取出縣市

地址放在 A1:A7,要在 B 欄取出縣市:

A
1地址
2台北市大安區和平東路二段106號
3新北市板橋區文化路一段188號
4新竹縣竹北市光明六路10號
5臺南市東區府東路20號
6寄到公司就好,板橋文化路那邊
7高雄市前鎮區中山二路5號

這種「縣市永遠在最前面兩個字加市或縣」的資料,我會直接用 REGEXEXTRACT,不找 AI。正規表示式的寫法可以回頭看 REGEX 與 AI 協作指南,這邊的模式很短:

Google 試算表公式
fx

取出開頭兩個字加上市或縣

=REGEXEXTRACT(A2, "^.{2}[市縣]")

^ 表示從開頭算起,.{2} 是任意兩個字,[市縣] 是「市」或「縣」其中一個。B2:B7 的結果:

列地址結果
2台北市大安區和平東路二段106號台北市
3新北市板橋區文化路一段188號新北市
4新竹縣竹北市光明六路10號新竹縣
5臺南市東區府東路20號臺南市
6寄到公司就好,板橋文化路那邊#N/A
7高雄市前鎮區中山二路5號高雄市

兩個地方要處理。第 5 列寫的是「臺」,其他列是「台」,統計的時候會被當成不同的字,用 SUBSTITUTE 統一。第 6 列根本沒有縣市,REGEXEXTRACT 找不到就回 #N/A,用 IFERROR 接住,顯示「未填」:

Google 試算表公式
fx

取出縣市,統一台字,找不到顯示未填

=IFERROR(SUBSTITUTE(REGEXEXTRACT(A2, "^.{2}[市縣]"), "臺", "台"), "未填")

C2:C7 會得到:

列結果
2台北市
3新北市
4新竹縣
5台南市
6未填
7高雄市

那 AI 函式呢

第 6 列這種「板橋文化路那邊」,AI 可能判斷得出是新北市,這是它比 REGEXEXTRACT 多出來的本事。但它也可能猜錯,或每次猜的不一樣。如果要用,我會把提示寫成:

Google 試算表公式
fx

只在地址能判斷時回答縣市

=AI( "從這個地址取出縣市,只回答縣市名稱,例如「台北市」。如果地址裡看不出縣市,就回答「未填」。", A2 )

而且只拿它處理 REGEXEXTRACT 回 #N/A 的那幾列,其餘列不需要花這個力氣。順序是先讓確定性的函式跑完大部分,剩下的少數再交給 AI 或人工看。

什麼時候用哪一個

  • 有固定格式、找得到規律(縣市、電話、訂單編號、關鍵字):REGEXEXTRACT、REGEXMATCH、IFS。結果每次一樣,改資料會立刻重算。
  • 需要「讀懂」意思(摘要、情緒、規則講不清楚的分類):AI 函式。輸出要當成參考,並用固定選項限制它。
  • 後面還要計算、統計、當條件判斷的欄位:用確定性函式,或把 AI 的輸出再轉成標準格式。AI 輸出的限制在 陷阱篇 會細講。
1

地址取縣市,找不到顯示未填

A2 是「台北市大安區和平東路二段106號」,A3 是「寄到公司就好,板橋文化路那邊」,A4 是「臺南市東區府東路20號」。在 B2 寫一條公式取出縣市,找不到縣市時顯示「未填」,不需要統一臺和台,往下填到 B4 後會得到「台北市」「未填」「臺南市」。

我個人的做法是:只要能用 REGEXEXTRACT 寫出來的,就不讓 AI 碰。留給 AI 的,是那些我寫不出規則的判斷。

分享:
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。