books_with_errors.xlsx 的 Author 欄存在名字與姓氏黏在一起的錯誤,例如 BrentDykes。原書示範先明確描述這個問題,再要求 Copilot 產生容錯公式。
IFERROR 在正常/異常格式間切換。原書 Prompt 指出:Author 有時缺少 name 與 surname 之間的空格,應依大寫字母切分。
| Author | 狀態 | 預期 Name | 預期 Surname |
|---|---|---|---|
| Brent Dykes | 正常空格 | Brent | Dykes |
| BrentDykes | 缺少空格 | Brent | Dykes |
原書 Copilot 公式:
Name:
=IFERROR(TEXTBEFORE([@Author]," "),LEFT([@Author],MIN(IFERROR(FIND(CHAR(ROW(INDIRECT("66:90"))),[@Author],2),LEN([@Author])+1))-1))
Surname:
=IFERROR(TEXTAFTER([@Author]," "),MID([@Author],MIN(IFERROR(FIND(CHAR(ROW(INDIRECT("66:90"))),[@Author],2),LEN([@Author])+1)),LEN([@Author])))
正常值直接由 TEXTBEFORE/TEXTAFTER 拆分;BrentDykes 因找不到空格,轉入 IFERROR 的第二套邏輯,找到 D 的大寫位置,輸出 Brent/Dykes。
公式比單純依空格拆分更健壯,但仍假設「姓氏起點可由下一個大寫字母辨識」。遇到 McDonald、O’Connor、全大寫或複合名字時仍需額外測試。
Author 欄有些值缺少名字與姓氏間的空格。請先用空格拆分;若找不到空格,再偵測第一個字元之後的第一個大寫英文字母作為姓氏起點。請先用 Brent Dykes 與 BrentDykes 驗證。