Menu

שגיאת #N/A באקסל: כש-VLOOKUP ו-XLOOKUP לא מוצאות

#N/A פירושה שחיפוש לא מצא את הערך שהוא חיפש. בדקו שגיאות הקלדה, רווחים מיותרים וטווח טבלה שזז כשהנוסחה מולאה למטה, ואז השתמשו ב-IFNA כדי להציג הודעה לערכים שבאמת חסרים.

כל גיליון בעמוד הזה חי: שנו מספר או נוסחה והוא יחושב מחדש.

#N/A פירושה "לא זמין": חיפוש כמו VLOOKUP, XLOOKUP או MATCH לא מצא את הערך שהוא חיפש. למטה, =VLOOKUP(E2,A2:B6,2,FALSE) מחזירה #N/A כי Kiwi לא נמצא ברשימה. שנו את E2 ל-Pear והיא מחזירה 1.5.

חיפוש מוצר שלא קיים
F2
ABCDEF
1ProductPriceLook forPrice
2Apple1.2Kiwi#N/A
3Pear1.5
4Plum0.8
5Bread2.4
6Milk1.1
#N/A הערך שחיפשתם לא נמצא בטווח החיפוש.

כשהערך באמת חסר, #N/A היא התשובה הנכונה, ו-IFNA (בהמשך) הופכת אותה להודעה. המקרים ששווה לתקן הם אלה שבהם הערך נמצא שם והחיפוש עדיין נכשל. אקסל בחלק מהשפות מציג את השגיאה בשם משלו, כמו #NV בגרמנית, #N/D בפורטוגזית ובאיטלקית, #Н/Д ברוסית ו-#YOK בטורקית; זו אותה שגיאה.

#N/A אחרי מילוי חיפוש למטה

הסיבה הנפוצה ביותר בגיליונות אמיתיים: הנוסחה עובדת בשורה הראשונה, ובחלק מהשורות מתחתיה מופיעה #N/A אף שהמוצרים נמצאים ברשימה.

טווח טבלה בלי $
F4
ABCDEF
1ProductPriceOrderPrice
2Apple1.2Apple1.2
3Pear1.5Plum0.8
4Plum0.8Pear#N/A
5Bread2.4Milk1.1
6Milk1.1Apple#N/A
#N/A הערך שחיפשתם לא נמצא בטווח החיפוש.

לחצו על F4: טווח הטבלה שלו הוא A4:B8, שתי שורות נמוך יותר מזה של F2. מילוי הנוסחה למטה הזיז את הטווח יחד איתה, ולכן Pear (שורה 3) ו-Apple (שורה 2) יצאו ממנו. F3 ו-F5 עובדים רק כי Plum ו-Milk עדיין בתוך הטווחים שלהם. לחצו על F2 ושנו את הטווח ל-$A$2:$B$6: כל העמודה מתעדכנת וכל המחירים מופיעים. סימני ה-$ נועלים את הטווח, ראו הפניות מוחלטות.

#N/A בגלל רווחים מיותרים

"Pear " עם רווח בסוף ו-"Pear" הם ערכים שונים בשביל אקסל. רווחים מגיעים מנתונים שהוקלדו ידנית, הועתקו מדפי אינטרנט או יוצאו ממערכות אחרות, והם בלתי נראים בתא.

רווח בסוף בתוך הטבלה
E2
ABCDEF
1ProductPriceLook forPriceLength of A2
2Pear 1.5Pear#N/A5
3Apple1.2
4Plum0.8
#N/A הערך שחיפשתם לא נמצא בטווח החיפוש.

E2 מחזיר #N/A. F2 מראה את הסיבה: ב-Pear יש 4 אותיות, אבל A2 באורך 5 תווים. מחקו את הרווח ב-A2 והחיפוש עובד. שלוש דרכים לתקן את זה לתמיד:

  • ניקוי העמודה: כתבו =TRIM(A2) בעמודת עזר, מלאו אותה למטה, ואז העתיקו אותה ו-בית > הדבק > ערכים מעל המקור.
  • TRIM לערך החיפוש כשהרווחים נמצאים במה שאתם מקלידים: =VLOOKUP(TRIM(D2),A2:B4,2,FALSE).
  • TRIM לכל עמודת החיפוש בתוך הנוסחה (Excel 2021 או Microsoft 365): =XLOOKUP(D2,TRIM(A2:A4),B2:B4).

טקסט שהודבק מדפי אינטרנט יכול להכיל רווח קשיח, ש-TRIM לא מסירה. העמוד על TRIM מראה איך להחליף אותו עם SUBSTITUTE(A2,CHAR(160)," ").

#N/A כשהערך לא נמצא בעמודה הראשונה

VLOOKUP מחפשת רק בעמודה הראשונה של הטווח שלה ומחזירה עמודה שמימינה. חיפוש של ערך מכל עמודה אחרת מחזיר #N/A, גם כשהוא בטבלה.

חיפוש לפי קוד
F2
ABCDEFG
1ProductCodePriceCodeVLOOKUPXLOOKUP
2AppleA-171.2P-22#N/APear
3PearP-221.5
4PlumP-310.8
5BreadB-052.4
6MilkM-401.1
#N/A הערך שחיפשתם לא נמצא בטווח החיפוש.

הקודים נמצאים בעמודה B, ולכן VLOOKUP על A2:C6 מחפשת את P-22 בין שמות המוצרים ונכשלת. היא גם לא יכולה להחזיר את שם המוצר, שנמצא לפני הקוד. XLOOKUP מקבלת את עמודת החיפוש ואת עמודת ההחזרה בנפרד ומוצאת את Pear. ב-Excel 2019 ובגרסאות קודמות, =INDEX(A2:A6,MATCH(E2,B2:B6,0)) עושה את אותו הדבר.

#N/A ממספרים שמאוחסנים כטקסט

מספר הזמנה שהוקלד כטקסט ('1001, או יובא מ-CSV) אף פעם לא מתאים למספר 1001, וגם להפך. שני התאים מציגים 1001, ולכן את זה קשה לראות. באקסל:

A2:B6 holds order numbers stored as text, E2 holds the number 1001
=VLOOKUP(E2,A2:B6,2,FALSE)          #N/A
=VLOOKUP(E2&"",A2:B6,2,FALSE)       found: E2&"" turns the number into text

A2:B6 holds real numbers, E2 holds "1001" as text
=VLOOKUP(E2,A2:B6,2,FALSE)          #N/A
=VLOOKUP(--E2,A2:B6,2,FALSE)        found: -- turns the text into a number

=ISTEXT(A2) אומרת איזה צד הוא טקסט, ומשולש ירוק קטן בפינת התא מסמן מספר שמאוחסן כטקסט. כדי להמיר עמודה שלמה, ראו המרת טקסט למספר.

IFNA או IFERROR: הצגת הודעה כששום דבר לא נמצא

כשערך יכול להיות חסר באופן לגיטימי, הציגו משהו שימושי יותר מ-#N/A. השתמשו ב-IFNA, לא ב-IFERROR:

IFNA מול IFERROR סביב חיפוש שבור
F2
ABCDEFG
1ProductPriceLook forIFNAIFERROR
2Apple1.2Pear#REF!Not found
3Pear1.5
4Plum0.8
5Bread2.4
6Milk1.1
#REF! הנוסחה מפנה לתא שלא קיים.

שתי הנוסחאות מבקשות את עמודה 3 של טווח בן שתי עמודות, טעות. IFNA נותנת ל-#REF! לעבור, ולכן אתם רואים את הבאג. IFERROR מסתירה אותו ואומרת Not found עבור Pear, שנמצא ברשימה. שנו את שני ה-3 ל-2: עכשיו כל אחת מציגה 1.5, וכש-E2 מוגדר ל-Kiwi כל אחת מציגה Not found. ל-XLOOKUP יש את ההודעה מובנית: =XLOOKUP(E2,A2:A6,B2:B6,"Not found"). עוד על ההבדל ב-IFERROR.

תיקון חיפוש שנשבר בגלל רווחים

מציאת המחיר למרות הרווחים
F2
ABCDEF
1ProductPriceLook forPrice
2Apple 1.2Plum
3Pear 1.5
4Plum 0.8
5Bread 2.4
6Milk 1.1
לחצו על תא כדי לראות את הנוסחה שלו. שנו מספר או נוסחה והגיליון יחושב מחדש.

תורכם: כל מוצר ברשימה יובא עם רווח בסוף, ולכן =VLOOKUP(E2,A2:B6,2,FALSE) מחזירה #N/A. כתבו ב-F2 נוסחה שעדיין מחזירה את המחיר של המוצר שב-E2.

=XLOOKUP(E2,TRIM(A2:A6),B2:B6) מבצעת TRIM לרשימה בתוך הנוסחה. גם =VLOOKUP(E2&" ",A2:B6,2,FALSE) עובדת כאן, אבל רק כל עוד לכל מוצר יש בדיוק רווח אחד בסוף; ניקוי העמודה עם TRIM הוא התיקון שמחזיק לאורך זמן.

שאלות נפוצות

מה המשמעות של #N/A באקסל?

N/A הוא קיצור של "not available" (לא זמין). המשמעות היא שפונקציית חיפוש (VLOOKUP, HLOOKUP, XLOOKUP, MATCH, XMATCH) לא מצאה את הערך שקיבלה. גם =NA() מחזירה אותה בכוונה, למשל כדי שתרשים ידלג על נקודה במקום לשרטט אותה כ-0.

למה VLOOKUP מחזירה #N/A כשהערך קיים?

שני הערכים לא זהים בדיוק. סיבות נפוצות: רווח בסוף אחד מהם, מספר שמאוחסן כטקסט באחד וכמספר בשני, או טווח טבלה בלי $ שגלש למטה כשהנוסחה מולאה, כך שהשורה עם הערך כבר לא בתוכו.

למה VLOOKUP מחזירה #N/A בחלק מהשורות ולא באחרות?

טווח הטבלה לא ננעל לפני שהנוסחה מולאה למטה, ולכן בכל שורה הוא מתחיל שורה אחת נמוך יותר: A2:B6 בשורה הראשונה הופך ל-A4:B8 שתי שורות אחר כך, וערכים שמעל הטווח כבר לא נמצאים. נעלו אותו עם $: =VLOOKUP(E2,$A$2:$B$6,2,FALSE).

למה XLOOKUP מחזירה #N/A?

הערך לא נמצא במערך החיפוש, או שהוא שונה ממנו ברווח או בכך שהוא טקסט במקום מספר. XLOOKUP מחפשת התאמה מדויקת כברירת מחדל, ולכן שום דבר קרוב לא מתקבל. הארגומנט הרביעי שלה מחליף את השגיאה: =XLOOKUP(E2,A2:A6,B2:B6,"Not found").

למה MATCH מחזירה #N/A?

עם סוג התאמה 0 הערך לא נמצא בטווח, בדיוק כמו ב-VLOOKUP. עם סוג התאמה 1 או בלי ארגומנט, הטווח חייב להיות ממוין בסדר עולה והערך לא יכול להיות קטן מהפריט הראשון שלו; השתמשו ב-=MATCH(E2,A2:A6,0) להתאמה מדויקת.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל