想把 apple 全部換成別的字,結果連 Apple Green Tea 也被動到了。尋找並取代不難,難在那五個勾選項,沒勾對就是多改或少改。
這篇依序試每個選項會多找到什麼,最後對照 FIND、SEARCH、EXACT,因為它們的比對行為跟選項是一對一的。規則運算式的語法本身,請看 正規表示式入門。
打開對話框
點「編輯」>「尋找並取代」。快捷鍵在 Chrome 是 Windows 按 Ctrl+H,Mac 按 Cmd+Shift+H。
圖:「尋找」填要找的字,「取代為」填換成什麼,五個勾選項在下面。
對話框的按鈕有四顆,前三顆的用途:
- 「尋找」:找到下一個符合的儲存格。
- 「取代」:只換目前選到的那一個。
- 「全部取代」:一次換掉所有符合的。
- 「完成」:關閉對話框。
我習慣先反覆按「尋找」看它跳到哪些格子,確定範圍對了才按「全部取代」。
五個勾選項
- 大小寫需相符:
apple與Apple視為不同。 - 整個儲存格內容需相符:儲存格內容要和「尋找」欄完全一樣,只含有還不夠。
- 使用規則運算式進行搜尋:「尋找」欄的內容當成規則(RE2 語法)。官方說明的規則運算式範例,都是在勾選「大小寫需相符」的狀態下執行,需要區分大小寫時,記得自己確認有沒有勾。
- 同時在公式中搜尋:連公式本身的文字也找,預設只找儲存格顯示的值。
- 一併在連結中搜尋:連結中的內容也納入搜尋。
另外還有「搜尋」下拉選單(預設「所有工作表」)可以改搜尋範圍。
大小寫與整格比對
貼到 A1:
| 品項 |
|---|
| Apple Tea |
| apple tea |
| Green Tea |
| APPLE TEA |
| Apple Green Tea |
「尋找」填 apple,每種勾法會找到的儲存格:
| 勾選 | 找到哪幾格 | 格數 |
|---|---|---|
| 都不勾 | A2、A3、A5、A6 | 4 |
| 大小寫需相符 | A3 | 1 |
Apple Tea 與 APPLE TEA 都含有 apple,只是大小寫不同,勾了大小寫需相符就被排除。
「尋找」改填 Green Tea:
| 勾選 | 找到哪幾格 | 格數 |
|---|---|---|
| 都不勾 | A4、A6 | 2 |
| 整個儲存格內容需相符 | A4 | 1 |
Apple Green Tea 含有 Green Tea,但整格內容不一樣,所以勾了整格比對就只剩 A4。要把整格換成別的字(例如把 Green Tea 這種完全一樣的格子換成 青茶),就勾這個,不會誤傷含有它的長字串。
同時在公式中搜尋
預設只找「看得到的值」。貼到 A1:
| 品項 | 單價 | 售價(9 折) |
|---|---|---|
| 蘋果紅茶 | 55 | |
| 青茶 | 40 | |
| 蘋果綠茶 | 50 |
C 欄的值是 49.5、36、45。搜尋 0.9,沒勾「同時在公式中搜尋」的話,找不到任何東西,因為值裡沒有 0.9;勾了才會找到 C2:C4 三格。
要把折扣改成 85 折:勾「同時在公式中搜尋」,「尋找」填 0.9,「取代為」填 0.85,按「全部取代」。公式變成 ,三格的值依序變成 46.75、34、42.5。
取代後 C2 的公式
=B2*0.85這招很好用,也很危險。檔案裡其他地方剛好有 0.9 的公式也會一起被換掉,而且不會有提示。所以我只會先把「搜尋」下拉選單改成「這張工作表」或指定範圍,再這樣做,需要常改的參數乾脆取名字,見 已命名範圍怎麼建。
用規則運算式取代
貼到 A1:
| 菜單 |
|---|
| T-17 蘋果紅茶 |
| T-9 青茶 |
| T-23 蘋果綠茶 |
目標是把編號搬到後面:蘋果紅茶 (17)。勾「使用規則運算式進行搜尋」,「尋找」填 ^T-(\d+) (.*)$,「取代為」填 $2 ($1),$1 是第一組括號抓到的編號,$2 是第二組的品名。按「全部取代」後,A2:A4 變成 蘋果紅茶 (17)、青茶 (9)、蘋果綠茶 (23)。
同樣的規則放進公式,就是 REGEXREPLACE:
公式版,原資料不動
=REGEXREPLACE(A2, "^T-(\d+) (.*)$", "$2 ($1)")結果是 蘋果紅茶 (17)。選單取代會直接改掉儲存格,只能靠 Ctrl+Z(Mac 為 Cmd+Z)倒回去;公式版不動原資料,公式填到新列(或用 ARRAYFORMULA 包起來),新增的資料也會照同樣的規則處理。一次性整理用選單,要長期用就寫公式。
對照 FIND、SEARCH、EXACT
選項的比對規則,在公式裡各有對應:
FIND:分大小寫。SEARCH:不分大小寫。EXACT:整格完全相同,分大小寫。
用前面那份 apple 的資料,數一下有幾格符合:
不分大小寫,含有 apple 的格數
=SUMPRODUCT(--ISNUMBER(SEARCH("apple", A2:A6)))結果是 4,對應「都不勾」。
分大小寫,含有 apple 的格數
=SUMPRODUCT(--ISNUMBER(FIND("apple", A2:A6)))結果是 1,對應「大小寫需相符」。
整格完全等於 Green Tea 的格數
=SUMPRODUCT(--EXACT(A2:A6, "Green Tea"))結果是 1,對應「整個儲存格內容需相符」。
選單適合一次性的修改,公式適合要一直算的統計。三個函式的用法在 文字函式入門。
按下「全部取代」之前,我一定會先看一眼「搜尋」下拉選單,預設是「所有工作表」,沒改的話其他工作表也會一起被換。拿上面的小資料練習一次吧!
資料來源:Google 說明中心「尋找與取代」(support.google.com/docs/answer/62754)。
接下來可以
相關文章
查看所有文章正規表示式入門:REGEXMATCH、REGEXEXTRACT、REGEXREPLACE 與基本符號
從 T-17 這種編號開始,學會 REGEXMATCH 判斷、REGEXEXTRACT 擷取、REGEXREPLACE 取代,以及 . \d \w [] + * ? {n} ^ $ () | 這些基本符號,最後用「尋找並取代」套用規則運算式。
TEXT 函式入門:用格式碼把數字和日期變成指定樣子的文字
TEXT 的語法與常用格式碼:0、#、千分位、百分比、yyyy/mm/dd、星期、hh:mm,並說明 TEXT 的結果是文字,不能再拿去加總。
設計可維護的試算表:讓三個月後的自己也看得懂
用一份批發折扣表示範怎麼改造:資料、計算、報表分成三類分頁並加前綴,折扣率搬到設定頁再取名字,巢狀 IF 拆成三欄或改用 LET,最後用統一的底色標出哪格能動。
留言討論
共 0 則留言

