寫長算式的建議

更新於 發佈於 閱讀時間約 5 分鐘

我們都想寫又簡單又好管理的算式,畢竟困難的又長又難寫啊 ( •́ _ •̀)

但生命中總會有不得已、必須把算式寫得很長、或是很多巢狀結構、一組括號又要包著一組括號的糾結時刻。想讓這樣複雜的算式執行成功、又要有易讀性,方便之後管理,其實不是件容易的事情。

所以呢,今天想分享幾項我在工作中實際用到的方法,在寫長算式的時候更不容易出錯的幾個小建議,給大家參考參考!


建議一:善用換行和空白鍵

假設我們今天有個算式:

=IFERROR(VLOOKUP(TRIM(MID(A1,10,50)),Validation!$A1:B50,2,false),"發現錯誤")

但如果分行整理成:

=IFERROR(
VLOOKUP(
TRIM(
MID(A1,10,50)),
Validation!$A1:B50,2,false
),
"發現錯誤")

是不是會比較好讀一點點?原本看起來複雜,但現在應該可以看得出來由內而外是 MID、TRIM、VLOOKUP、IFERROR 這四個函式了吧?這樣一來,之後如果函式回傳錯誤,也比較容易層層抽絲剝繭下去,找到癥結點就可以排除錯誤了。

換行的方法很簡單,在你想換行的地方按 Command/Ctrl + Enter 就可以囉!我們看看效果:

raw-image
raw-image

只是換行,瞬間清楚多了!

給正在努力寫 Google Apps Script 的朋友

如果你需要寫 setFormula() 或是陣列的 setFormulas() 這類需要大篇幅斷行的算式,字串的換行可以用 \n\ 完成,像是:

var formula = 
"=IFS( \n\
... \n\
...)"

ss.getRange("A10").setFormula(formula)

執行後,\n\ 也會幫你斷行,就會有 Ctrl/Command + Enter 的效果。


建議二:巢狀算式由內往外寫、一層一層來

內層的算式執行結果如果沒寫好,外部也很容易出現錯誤或是預料外的結果。

與其一開始就直接用外層的算式包到內部、又不考慮內層算式執行成果,不如先把內層寫好、確定執行結果是自己預期的之後再向外包一層,做完再包一層、再包、再包、再包...,這樣就不會那麼容易出錯了,尤其是得寫巢狀 IF、巢狀 QUERY、字串處理和擷取(LEFT/MID/RIGHT/FIND/LEN 等)的時候,我非常推薦這個做法!

如果寫的過程出現錯誤的話,可以搭配我之前寫過的錯誤疑難排解術來檢查問題出在哪喔。


建議三:檢查括號層級

如果你按照建議一妥善地斷行、建議二把巢狀算式整理乾淨後,卻還是出錯,那可以檢查看看括號是不是包含到了不該列入的算式。這種情況發生的原因通常是多打、或少打括號導致,只要耐心釐清括號的範圍該是哪裡到哪裡,補上或刪減不對的括號就大概可以解決了。


建議四:檢查絕對位址、相對位址

如果長算式發生錯誤,可以先確認你的長算式裡面有絕對位址(儲存格位址出現 $A$1 這類有「$」的符號)和相對位址(也就是位址沒有「$」的符號),可以再檢查一下位址是不是都妥妥指定好。如果你的算式是從別的儲存格貼過來的,也有可能會發生這樣的錯誤,把儲存格的位址梳理好也或許可以解決。


建議五:寫長的沒把握就先拆開來寫短的!

上面的方法都試過了,還是做不出來的話,其實人生不必活得那麼辛苦 (›´ω`‹ )!如果真的沒辦法在一個儲存格內一口氣寫完長的,把長的拆成短的處理、分在別的儲存格上先釐清問題,搞定了後再拼裝回去也是個方法。你可以考慮把原本長算式裡內層的部分先執行好,再用另外一個儲存格的算式包覆,結果還是出得來的。


簡單來說,只要把邏輯理清楚、斷行斷得好,或是把長的改成短的、分開處理,就算遇到長算式的難關也能迎刃而解,慢慢來、比較快!

如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!

想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



留言
avatar-img
留言分享你的想法!
喜特先生 Mr. Sheet -avatar-img
發文者
2022/07/04
嗨,DD Liu! 如果是 AppsScript 的話,我這邊測試是好像沒問題(用 setValue()、setValues() 來做);如果你是說在 sheet 本身複製貼上有看到這種「因為斷行符號而出現雙引號」的狀況,這應該是 Google sheet 跟 Excel 固有的功能設計,暫時無解 (´;ω;`) 你或許可以試試看貼上原值(Ctrl/Command + Shift + ),又或是先過 CLEAN 這個函式先清理你原本要複製的儲存格裡不能輸出的字元,,再試著貼上看看。(https://support.google.com/docs/answer/3267340?hl=zh-Hant) 如果你有試算表的話,也可以分享給我看看唷! 順便簡單附上我剛剛做 Google Apps Script 的 code: function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet() ss.getRange("A2").setValue("第一段文字 \n\第二段文字") }
DD Liu-avatar-img
2022/07/04
"早安 晚安" ->這樣子><
DD Liu-avatar-img
2022/07/04
喜特先生好,關於google app script "/n" 下一行的方式,打印回sheet上之後複製出來的資料開頭跟結尾會有" "的符號不曉得這個狀況有沒有解決方式呢?google好久都沒有找到相關的解方,苦惱
avatar-img
喜特先生官方沙龍
19.5K會員
153內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
EXCEL數據常常錯誤的元兇,認識數字跟文字型數字!! 🚫異常狀況1: 資料中有文字型數字,SUM會跳過文字型數字進行加總 🚫異常狀況2: 資料中有文字型數字布林邏輯或其他查詢函數會失效 🚫異常狀況3: 資料中有文字型數字會讓樞紐運算錯誤 判斷異常: 判斷方法1 : 數字靠右,文字靠左 判斷方
Thumbnail
EXCEL數據常常錯誤的元兇,認識數字跟文字型數字!! 🚫異常狀況1: 資料中有文字型數字,SUM會跳過文字型數字進行加總 🚫異常狀況2: 資料中有文字型數字布林邏輯或其他查詢函數會失效 🚫異常狀況3: 資料中有文字型數字會讓樞紐運算錯誤 判斷異常: 判斷方法1 : 數字靠右,文字靠左 判斷方
Thumbnail
別人函數都用的嚇嚇叫,我為什麼函數都學不好?很有可能你被參照給欺負了😭 所謂的參照就是儲存格的身分證, 由欄(英文);列(數字)所組成的座標 相對參照: 就是當複製或自動填滿時,參照會與原儲存格的位置相對的變動 欄絕對參照: 將欄(英文)前面加上$把它給固定住,這樣不論是複製或填滿時,欄就不會
Thumbnail
別人函數都用的嚇嚇叫,我為什麼函數都學不好?很有可能你被參照給欺負了😭 所謂的參照就是儲存格的身分證, 由欄(英文);列(數字)所組成的座標 相對參照: 就是當複製或自動填滿時,參照會與原儲存格的位置相對的變動 欄絕對參照: 將欄(英文)前面加上$把它給固定住,這樣不論是複製或填滿時,欄就不會
Thumbnail
高效生活,幫助你找回更多自己的時間 哈囉,這裡是 AL 的 Googlesheet 學習筆記 本系列文章,會帶你認識各種函數,學習並應用於日常,加速生活與工作、提升效率 今天要介紹的函數是 if 和 ifs
Thumbnail
高效生活,幫助你找回更多自己的時間 哈囉,這裡是 AL 的 Googlesheet 學習筆記 本系列文章,會帶你認識各種函數,學習並應用於日常,加速生活與工作、提升效率 今天要介紹的函數是 if 和 ifs
Thumbnail
你是不是常常要面對堆積如山的excel表格?其實有一些簡單的訣竅,可以讓你大大減輕製作數十頁資料的痛苦......
Thumbnail
你是不是常常要面對堆積如山的excel表格?其實有一些簡單的訣竅,可以讓你大大減輕製作數十頁資料的痛苦......
Thumbnail
Google 試算表還有一個花括號 { } 的參照方法,可以參照範圍。學會的話,對處理大量資料有很多好處!我們來看看怎麼用 { } 來處理吃資料吧。
Thumbnail
Google 試算表還有一個花括號 { } 的參照方法,可以參照範圍。學會的話,對處理大量資料有很多好處!我們來看看怎麼用 { } 來處理吃資料吧。
Thumbnail
最近因為輸入資料節省時間跟正確性的需求, 去查了Excel的函數運算怎麼用, 花了大概10分鐘查資料看教學影片, 試了兩三次就成功了~ 現在來分享一下我這次學到的函數。 由於工作上的需求, 需要從一堆數值裡面篩選出範圍內的數量, 但因為數量有點大,我又有點懶惰(其實不只有點), 步驟一:輸入關鍵字
Thumbnail
最近因為輸入資料節省時間跟正確性的需求, 去查了Excel的函數運算怎麼用, 花了大概10分鐘查資料看教學影片, 試了兩三次就成功了~ 現在來分享一下我這次學到的函數。 由於工作上的需求, 需要從一堆數值裡面篩選出範圍內的數量, 但因為數量有點大,我又有點懶惰(其實不只有點), 步驟一:輸入關鍵字
Thumbnail
遇到 #N/A 怎麼辦?遇到 #REF! 又怎麼辦?這邊寫了個大全幫忙你,或許可以幫你解決唷!快來看看~
Thumbnail
遇到 #N/A 怎麼辦?遇到 #REF! 又怎麼辦?這邊寫了個大全幫忙你,或許可以幫你解決唷!快來看看~
Thumbnail
主題說明: 在傳產10年的經驗中,Excel是最靈活的工具,幾乎每個辦公室的人都會。而我因為職能需要大量跨部門溝通,因此在過程中協助文員解決的問題,不知不覺已經累積到可以整合跨部門的報表,因此想把這些技能分享給各位知道。也歡迎各位Email: idforbin@gmail.com給我一起討論
Thumbnail
主題說明: 在傳產10年的經驗中,Excel是最靈活的工具,幾乎每個辦公室的人都會。而我因為職能需要大量跨部門溝通,因此在過程中協助文員解決的問題,不知不覺已經累積到可以整合跨部門的報表,因此想把這些技能分享給各位知道。也歡迎各位Email: idforbin@gmail.com給我一起討論
Thumbnail
寫完第一篇突然就覺得很熱血,馬上迫不及待的要來寫第二篇,雖然我的肩膀已經開始隱隱作痛。 這篇就來一個簡單點的~ 這篇很單純的就是【你儲值多少,就送多少】,並沒有一些奇奇怪怪的條件或但書 一樣來看一下他的規則吧! (內容數字已做調整,與原先完全不同,此只為一起研究Excel)
Thumbnail
寫完第一篇突然就覺得很熱血,馬上迫不及待的要來寫第二篇,雖然我的肩膀已經開始隱隱作痛。 這篇就來一個簡單點的~ 這篇很單純的就是【你儲值多少,就送多少】,並沒有一些奇奇怪怪的條件或但書 一樣來看一下他的規則吧! (內容數字已做調整,與原先完全不同,此只為一起研究Excel)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News