處理錯誤的 IFNA 跟 IFERROR

更新於 發佈於 閱讀時間約 4 分鐘
這次要介紹的是 IFNA 和 IFERROR 這兩個函式,它們可以幫助我們在試算表中可以靈活處理錯誤和缺失的數據。(延伸閱讀:#N/A、#ERROR! —— 我到底哪裡做錯了?錯誤疑難排解術
語法很單純,但也很實用!我們一起來看看怎麼做。

IFNA

按照 IFNA 字面上的意思來看,它就是「如果值發生 #N/A 錯誤,那就做點什麼事」,的意思。語法很簡單:
=IFNA(值, [#N/A 錯誤時要做的事])
  • 值:要給 IFNA 函式檢查是否有 #N/A 錯誤的值、或儲存格位址。
  • #N/A 時顯示的值:選填,選填,你可以在這裡寫像是「有錯誤」、「!!!」或任何提醒自己有錯誤的文字、數字,或是要執行的函式也可以。如果這邊什麼都不寫的話,IFNA 則會在有 N/A 錯誤時回傳空白;如果沒有 N/A 錯誤的話,那就會正常回傳第一個參數的值。
舉例來說:
=IFNA(A1, 0)
把上面這東西翻成白話文的話,就是:
  • 如果 A1 是 #N/A 錯誤,那就回傳 0。
  • 如果 A1 不是 #N/A 錯誤,那就回傳 A1。
所以你可以把它 IFNA(還有等等要介紹的 IFERROR)當作一個保險,來確保就算函式運算出現 #N/A,也還會顯現對應的值,讓你做後續的計算或是除錯。
如果我要用 XLOOKUPVLOOKUP、HLOOKUP、MATCH、QUERY 這類查詢類的函式,也預期到有可能會發生 N/A 錯誤的話,我通常就會包一層 IFNA,像是這樣:
=IFNA(VLOOKUP(...
=IFNA(QUERY(...

IFERROR

再來是 IFERROR。它其實也是類似的概念,也就是「如果值發生任何錯誤,那就做點什麼事」的意思。語法也很像:
=IFERROR(值, 錯誤時要做的事)
定義也和剛剛差不多:
  • 值:要給 IFERROR 函式檢查是否有錯誤的值、或儲存格位址。
  • 錯誤時要做的事:選填,你可以在這裡寫像是「有錯誤」、「!!!」或任何提醒自己有錯誤的文字、數字,或是要執行的函式也可以。如果這邊什麼都不寫的話,IFERROR 則會在有錯誤時回傳空白;如果沒錯誤的話,那就會正常回傳第一個參數的值。
例如說:
=IFERROR(AVERAGE(A1:A10), "有錯誤!")
把上面這串一樣翻成白話文的話:
  • 如果 AVERAGE 的運算有錯誤,就會回傳「有錯誤!」這串文字
  • 如果 AVERAGE 的運算沒有錯誤,就會回傳 AVERAGE 的計算結果
它跟剛剛看到的 IFNA 的唯一差別,就是 IFERROR 可以處理任何一種錯誤,而 IFNA 只會處理 N/A 錯誤。
那你可能會問:

我可以用 IFERROR 就好了嗎?

當然可以!但我喜歡把 IFNA 跟 IFERROR 這兩個函式分開用途用。在這邊分享一個在實務上遇到的例子,或許可以說明為什麼我喜歡這麼做。
我某天在寫函式的時候,拼錯了一個字母:
=IFERROR(VLOKUP("我想找這個", A1:B10, 2, false), "有錯誤!")
我原本想寫的是 VLOOKUP,但沒意識到拼錯了。IFERROR 的確會讓我會知道這串函式「有錯誤!」:
可是我當時以為是 VLOOKUP 沒在指定的範圍內找到值、或是我資料格式沒做對、或是什麼我沒遇過的狀況,可是繞了一大圈後,才發現原來是自己函式拼錯,資料根本沒問題。
可是如果我一開始寫的是:
=IFNA(VLOKUP("我想找這個", A1:B10, 2, false), "有錯誤!")
這時候 IFNA 會回傳 #NAME? 錯誤:
這樣我一開始就根本不用花時間瞎忙瞎猜,因為它明確提示我的函式可能拼錯了!

如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!
想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!
我是喜特先生,Mr. Sheet,我們下個教學見!
avatar-img
14.6K會員
148內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
喜特先生官方沙龍 的其他內容
之前提過 IF 跟 IFS 這兩個可以做條件判斷的函式,但你知道其實條件判斷還有一手!今天要介紹的叫 SWITCH 函式,它跟 IF、IFS 一樣,可以做多條件的判斷,且可以在沒有相符結果時,傳回你指定的預設值。
這次要介紹的兩個叫做 VSTACK 跟 HSTACK,可以讓你把範圍縱向或橫向堆疊起來,省去合併資料的一點麻煩!
2023 到了,今年有什麼新規劃嗎?或是有什麼重要的日子值得倒數一下呢?我們可以在試算表用三個方法,計算兩個日期的相差天數,當然計算倒數日也可以。一起來看看吧!
終於要來完成資料驗證系列文的最後一塊拼圖,核取方塊了! 核取方塊能做的應用有很多,在這邊我會分享兩個,歡迎大家來看看~
在資料驗證(三):自訂公式的教學,我寫了一串可以驗證身分證字號的公式: 如果 A1 是正確的身分證字號格式就會是 TRUE、錯誤的話則是 FALSE。 我會在這篇文稍稍解釋一下上面這串是怎麼做的,也歡迎大家在文章下方留言,告訴我你的看法、或是有更好的建議也可以跟我說說!
上兩週我們介紹了資料驗證是什麼,要怎麼利用它來製作下拉式選單、驗證使用者是否輸入特定的文字、日期和數字,還有當輸入不符合驗證規則的時候、試算表會怎麼樣提醒使用者的設定方式。那麼,這次我們要來接著介紹怎麼用「自訂公式」來設定資料驗證。
之前提過 IF 跟 IFS 這兩個可以做條件判斷的函式,但你知道其實條件判斷還有一手!今天要介紹的叫 SWITCH 函式,它跟 IF、IFS 一樣,可以做多條件的判斷,且可以在沒有相符結果時,傳回你指定的預設值。
這次要介紹的兩個叫做 VSTACK 跟 HSTACK,可以讓你把範圍縱向或橫向堆疊起來,省去合併資料的一點麻煩!
2023 到了,今年有什麼新規劃嗎?或是有什麼重要的日子值得倒數一下呢?我們可以在試算表用三個方法,計算兩個日期的相差天數,當然計算倒數日也可以。一起來看看吧!
終於要來完成資料驗證系列文的最後一塊拼圖,核取方塊了! 核取方塊能做的應用有很多,在這邊我會分享兩個,歡迎大家來看看~
在資料驗證(三):自訂公式的教學,我寫了一串可以驗證身分證字號的公式: 如果 A1 是正確的身分證字號格式就會是 TRUE、錯誤的話則是 FALSE。 我會在這篇文稍稍解釋一下上面這串是怎麼做的,也歡迎大家在文章下方留言,告訴我你的看法、或是有更好的建議也可以跟我說說!
上兩週我們介紹了資料驗證是什麼,要怎麼利用它來製作下拉式選單、驗證使用者是否輸入特定的文字、日期和數字,還有當輸入不符合驗證規則的時候、試算表會怎麼樣提醒使用者的設定方式。那麼,這次我們要來接著介紹怎麼用「自訂公式」來設定資料驗證。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在處理數據時,最可能會遇到數據中含有None的時候,若沒有處理就進行運算就會造成程式崩潰或者報錯 數據中含有None input_list = [(42, 292), (28, 296), (999, 92), (993, 46), (219, 4), (279, 2), (None, None
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
本文深入探討 Power Automate Desktop 中除錯的重要性,介紹了中斷點、從這裡執行和逐步執行這三個功能的使用方法和效益。除錯過程中的重要性和影響也得到了詳細闡述,讀者可藉此瞭解如何輕鬆應對 RPA 流程開發中的各種挑戰。
Thumbnail
本章節介紹C#的「例外處理」,包括使用try-catch語法處理錯誤,finally關鍵字的使用,以及如何主動引發和自定義異常。
Thumbnail
例外處理是Python中的重要概念,用於控制並處理程序異常,防止程序崩潰和數據損失。它包括try, except, else和finally等語法結構,可用於對特定錯誤進行處理,或主動觸發和自定義異常。
Thumbnail
我接到財務部門的電話,某項費用的預估與實際支出對不上,而且落差頗大。 怎麼會?我心裡很驚訝,那個項目事關重大,離手之前,還經過再三檢查。 懷抱著不祥預感,把申請單找出來一看,天啊,我是豬嗎?真是羞愧得想一頭撞死,居然沒注意到單位的欄目錯誤,才硬生生搞出這麼大的落差。
Thumbnail
在程式世界裡,if 條件句是我們的好朋友,幫我們做各種決策。如果不注意可能會讓我們掉進小陷阱。文中透過幾個例子,在使用 if 時可能會遇到的一些常見問題,像是不必要的 if、過於複雜的條件、忘了用嚴格比較,還有嵌套太深的 if。透過這篇文章,你將學到如何避免這些小錯誤,寫出更乾淨、更有效率的程式碼。
前幾天教小朋友功課,看到了幾個錯字,唸了幾句後順便叫他訂正。回頭想想,為什麼我們會說「錯」字呢?錯有不對的意思嗎? 於是立刻和小朋友一起想「錯」的造詞,有錯誤、錯失、過錯、認錯等等,上述都有不正確的意思。但我又想到交錯、錯身而過、錯落有致,甚至連「他山之石,可以攻錯」都想出來了,可是這
Thumbnail
長期結果如果已經知道,明天會發生什麼事就不重要了。如果結果是好的,方向正確,那麼短期間「約略正確」即可;如果結果是壞的,方向錯誤,短期間猜得再準確都沒有用,仍然是個「精準的錯誤」。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在處理數據時,最可能會遇到數據中含有None的時候,若沒有處理就進行運算就會造成程式崩潰或者報錯 數據中含有None input_list = [(42, 292), (28, 296), (999, 92), (993, 46), (219, 4), (279, 2), (None, None
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
本文深入探討 Power Automate Desktop 中除錯的重要性,介紹了中斷點、從這裡執行和逐步執行這三個功能的使用方法和效益。除錯過程中的重要性和影響也得到了詳細闡述,讀者可藉此瞭解如何輕鬆應對 RPA 流程開發中的各種挑戰。
Thumbnail
本章節介紹C#的「例外處理」,包括使用try-catch語法處理錯誤,finally關鍵字的使用,以及如何主動引發和自定義異常。
Thumbnail
例外處理是Python中的重要概念,用於控制並處理程序異常,防止程序崩潰和數據損失。它包括try, except, else和finally等語法結構,可用於對特定錯誤進行處理,或主動觸發和自定義異常。
Thumbnail
我接到財務部門的電話,某項費用的預估與實際支出對不上,而且落差頗大。 怎麼會?我心裡很驚訝,那個項目事關重大,離手之前,還經過再三檢查。 懷抱著不祥預感,把申請單找出來一看,天啊,我是豬嗎?真是羞愧得想一頭撞死,居然沒注意到單位的欄目錯誤,才硬生生搞出這麼大的落差。
Thumbnail
在程式世界裡,if 條件句是我們的好朋友,幫我們做各種決策。如果不注意可能會讓我們掉進小陷阱。文中透過幾個例子,在使用 if 時可能會遇到的一些常見問題,像是不必要的 if、過於複雜的條件、忘了用嚴格比較,還有嵌套太深的 if。透過這篇文章,你將學到如何避免這些小錯誤,寫出更乾淨、更有效率的程式碼。
前幾天教小朋友功課,看到了幾個錯字,唸了幾句後順便叫他訂正。回頭想想,為什麼我們會說「錯」字呢?錯有不對的意思嗎? 於是立刻和小朋友一起想「錯」的造詞,有錯誤、錯失、過錯、認錯等等,上述都有不正確的意思。但我又想到交錯、錯身而過、錯落有致,甚至連「他山之石,可以攻錯」都想出來了,可是這
Thumbnail
長期結果如果已經知道,明天會發生什麼事就不重要了。如果結果是好的,方向正確,那麼短期間「約略正確」即可;如果結果是壞的,方向錯誤,短期間猜得再準確都沒有用,仍然是個「精準的錯誤」。