如何搭配 ChatGPT 協作修改 Excel 函數

工作上開始習慣使用 ChatGPT 提供的 Excel 函數處理資料。不過,回答的品質取決於給予的提示資訊,若 ChatGPT 的答案無法滿足需求,建議提供更多資料線索、查閱相關文件或提出修正的要求。 

可以解決問題的機器人,就是好機器人! by Bing

問題過程

狀況一、機器人提供的答案,不一定是適當或正確的

有次資料清理需要去除欄位值內的英文文字,機器人提供的答案是

=TEXTJOIN("", TRUE, IF(ISERROR(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")), MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1), ""))

的確可以去除英文字,但是實際資料還包含的數字也被去除了。在提示文字中提供比較多的範例資料 (example data) 或者更明確地敘述自己的問題,讓機器人比較清楚狀況。

狀況二、機器人提供的答案,過度符合特定情境,也增加公式的複雜性

看到同仁使用 ChatGTP 協作撰寫 Excel 函數,詢問如何將 「A2, C2, D2, E2 儲存格的欄位值文字結合,並用逗號分隔」。ChatGPT 機器人提供的函數建議:

= A2 & "," & C2 & "," & D2 & "," & E2

輸出之後,發現有一列因為欄位值都是空白,導致出現連續的逗號「,,,」。進一步詢問如何去除逗號。下圖結果中 ChatGPT 為了要去除逗號,共使用三次 SUBSTITUTE 函數,分別去除一個逗號、二個逗號、三個逗號。

= TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,",,",""),",,",","),",,",""))

可以想像如果日後實際資料的出現五個連續逗號的話,需要額外增加 SUBSTITUTE 條件。機器人提供的解法,符合特定情境,也增加公式的複雜性

解決問題

對於不瞭解 Excel 函數的人,不加思考直接套用 ChatGPT 提供的答案,是滿有可能的。但是閱讀 SUBSTITUTE 函數的文件,其實不需要逐一去除一個逗號、二個逗號、三個逗號。函數可以改寫成:
= TRIM(SUBSTITUTE(A1,",",""))
ChatGPT 提供的回答,有時候因為提供的提示文字 (prompt) 敘述方式,導致回答會過度符合提示的狀況。如果實際資料比較複雜,反而造成原本的回答無法使用或不好使用。

建議與 ChatGPT 的協作方式:
  • 如果 ChatGPT 回答結果不是你要的,提出修改的要求
  • 如果狀況允許的話,在提示文字中提供比較多的範例資料 (example data)
  • 取得 ChatGPT 回答結果後,進一步查閱官方文件 (Microsoft SupportGoogle 文件編輯器說明),瞭解函數原本的功能。如果熟知 Excel 函數,還有 JOINTEXTJOIN 可以處理文字結合。

參考資料

留言