Menu

שגיאת #REF! באקסל: למה היא קורית ואיך מתקנים

#REF! פירושה שנוסחה מפנה לתא שכבר לא קיים, בדרך כלל כי שורה, עמודה או גיליון שהיא השתמשה בהם נמחקו: =B2*C2 הופכת ל-=B2*#REF!. היא מופיעה גם כש-VLOOKUP או INDEX מבקשות עמודה או שורה מחוץ לטווח שלהן.

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

#REF! פירושה שנוסחה מפנה לתא שלא נמצא שם. הסיבה הרגילה היא שורה, עמודה או גיליון שנמחקו: כשעמודה C נמחקת, אקסל כותב מחדש את =B2*C2 כ-=B2*#REF!, והתוצאה היא #REF! מאז והלאה. הקישו Ctrl+Z (או Cmd+Z ב-Mac) מיד אחרי המחיקה כדי לקבל בחזרה את העמודה ואת הנוסחה.

אחרי שעמודה נמחקה
D2
ABCD
1ProductPriceQtyTotal
2Apple1.210#REF!
3Pear1.520#REF!
4Plum0.815#REF!
5Bread2.45#REF!
#REF! הנוסחה מפנה לתא שלא קיים.

עמודת הכמות נמחקה והוקלדה מחדש, אבל הנוסחה עדיין אומרת #REF!: אקסל אף פעם לא מתקן הפניה אחרי שהיא נעלמה. לחצו על D2, החליפו את #REF! ב-C2 והקישו Enter. כל העמודה מתעדכנת, ו-D2 מציג 12.

איך #REF! נכנסת לנוסחה

אקסל כותב #REF! בתוך נוסחה בכל פעם שתא שהנוסחה השתמשה בו נעלם:

מה עשיתם=B2*C2 ב-D2 הופכת ל
מחקתם את עמודה C=B2*#REF!
מחקתם את שורה 2הנוסחה נמחקת עם השורה שלה; נוסחאות בשורות אחרות שהצביעו על שורה 2 מקבלות #REF!
מחקתם את הגיליון שנוסחה מפנה אליו=#REF!B2*2 (בנוסחה כמו =Prices!B2*2)
גזרתם תא והדבקתם אותו מעל תא שהנוסחה משתמשת בו#REF! במקום ההפניה שנדרסה

מחיקה של תאים בתוך טווח בטוחה: =SUM(B2:D2) הופכת ל-=SUM(B2:C2) כשעמודה C נמחקת. מחיקה של התא הראשון או האחרון בטווח רק מקצרת אותו. לכן =SUM(B2:D2) בטוחה יותר מ-=B2+C2+D2, שהופכת ל-=B2+#REF!+C2.

למה VLOOKUP מחזירה #REF!

הארגומנט השלישי של VLOOKUP סופר עמודות בתוך טווח הטבלה. אם הוא גדול ממספר העמודות בטווח, התוצאה היא #REF!.

מספר עמודה מחוץ לטווח
F2
ABCDEF
1ProductPriceStockLook forStock
2Apple1.240Pear#REF!
3Pear1.525
4Plum0.860
5Bread2.412
6Milk1.130
#REF! הנוסחה מפנה לתא שלא קיים.

ב-A2:C6 יש שלוש עמודות, ולכן 4 לא קיימת. שנו את ה-4 ל-3 ו-F2 מציג 25. זה קורה בעיקר אחרי מחיקה של עמודה מטבלת החיפוש: הטווח מצטמצם, ומספר העמודה הקבוע לא. XLOOKUP או INDEX עם MATCH נמנעות מזה כי הן מציינות את עמודת ההחזרה ישירות, כמו ב-=XLOOKUP(E2,A2:A6,C2:C6). ב-VLOOKUP יש את שאר הארגומנטים שלה.

#REF! עם INDEX ו-OFFSET

INDEX מחזירה #REF! כשמספר השורה או העמודה מחוץ לטווח שלה, ו-OFFSET כשהיא זזה מעל שורה 1 או לפני עמודה A.

מיקומים מחוץ לטווח
B2
ABC
1ScoreResultWhat it asks for
288#REF!6th value of 5
372953rd value of 5
495#REF!2 rows above A2
564814 rows below A2
681
#REF! הנוסחה מפנה לתא שלא קיים.

ב-A2:A6 יש חמישה ציונים, ולכן INDEX(A2:A6,6) היא #REF! בעוד ש-INDEX(A2:A6,3) מחזירה 95. שורה 0 לא קיימת, ולכן OFFSET(A2,-2,0) היא #REF!, ו-OFFSET(A2,4,0) נוחתת על A6: 81. כשהמיקום מגיע מנוסחה אחרת (MATCH, COUNT), בדקו קודם את הנוסחה ההיא. עוד בעמוד על INDEX.

גם INDIRECT נותנת #REF! כשהטקסט שלה אינו כתובת חוקית (=INDIRECT("ZZZ1"), כי העמודה האחרונה היא XFD) או מצביע לתוך חוברת עבודה סגורה.

#REF! בהעתקת נוסחה

הפניה יחסית זזה יחד עם הנוסחה. העתיקו אותה מספיק למעלה או הצידה וההפניה נופלת מהגיליון:

C3:  =B2*2        (one row up, one column back)
copy C3 to B2:  =A1*2
copy C3 to A2:  =#REF!*2    (there is no column before A)

אותו דבר קורה כשנוסחה שהועתקה לגיליון או לחוברת עבודה אחרים מצביעה על תאים שלא קיימים שם. נעלו עם $ את התאים שאסור להם לזוז (=$B$2*2), או העתיקו את טקסט הנוסחה משורת הנוסחאות במקום את התא. הפניות מוחלטות מסבירות את ה-$.

מציאה והסרה של כל #REF! בחוברת עבודה

  1. הקישו Ctrl+F (או Cmd+F ב-Mac), הקלידו #REF!, פתחו את אפשרויות, הגדירו את חפש ב ל-נוסחאות, ולחצו על חפש הכל. הרשימה מציגה כל נוסחה עם הפניה שבורה.
  2. כדי לתקן הרבה בבת אחת, השתמשו ב-Ctrl+H (ב-Mac: Control+H): חפשו #REF! והחליפו בהפניה הנכונה, אבל רק כשכל התאמה צריכה לקבל את אותו תא.
  3. בדקו את נוסחאות > מנהל השמות: שם שבעמודת מפנה אל שלו מופיע #REF! שובר כל נוסחה שמשתמשת בו.
  4. אם הנתונים שנמחקו אבדו והנוסחה כבר לא נחוצה, בחרו את התאים והחליפו את הנוסחאות בערכים שלהן (העתקה, ואז בית > הדבק > ערכים). ערכי שגיאה נשארים שגיאות, אז מחקו את התאים האלה אחר כך.

תיקון חיפוש שמחזיר #REF!

תיקון חיפוש המלאי
F2
ABCDEF
1ProductPriceStockLook forStock
2Apple1.240Plum
3Pear1.525
4Plum0.860
5Bread2.412
6Milk1.130
לחצו על תא כדי לראות את הנוסחה שלו. שנו מספר או נוסחה והגיליון יחושב מחדש.

תורכם: =VLOOKUP(E2,A2:C6,4,FALSE) החזירה #REF!. כתבו ב-F2 חיפוש עובד שמחזיר את המלאי של המוצר שב-E2.

כל חיפוש שמחזיר כאן 60 והולך אחרי הנתונים עובר: ה-VLOOKUP עם עמודה 3, =XLOOKUP(E2,A2:A6,C2:C6) או =INDEX(C2:C6,MATCH(E2,A2:A6,0)).

שאלות נפוצות

מה המשמעות של #REF! באקסל?

הנוסחה מצביעה על תא שלא קיים. לרוב נמחקו שורה, עמודה או גיליון שהנוסחה השתמשה בהם, ואקסל החליף את ההפניה ב-#REF!, כך ש-=B2*C2 הפכה ל-=B2*#REF!. גם VLOOKUP ו-INDEX מחזירות #REF! כשמספר העמודה או השורה גדול מהטווח.

איך מתקנים #REF! אחרי מחיקת עמודה?

הקישו מיד Ctrl+Z (או Cmd+Z ב-Mac) כדי לבטל את המחיקה. אם כבר מאוחר מדי, לחצו על הנוסחה והחליפו את #REF! בתא שהיא צריכה להשתמש בו, ואז מלאו את הנוסחה שוב למטה.

למה VLOOKUP מחזירה #REF!?

מספר העמודה גדול ממספר העמודות בטווח הטבלה. =VLOOKUP(E2,A2:C6,4,FALSE) מבקשת את העמודה הרביעית של טווח בן 3 עמודות. השתמשו ב-3, או הרחיבו את הטווח ל-A2:D6.

איך מוצאים את כל שגיאות #REF! בחוברת עבודה?

הקישו Ctrl+F (או Cmd+F ב-Mac), חפשו #REF!, הגדירו את חפש ב ל-נוסחאות ולחצו על חפש הכל. אקסל מציג כל נוסחה שיש בה הפניה שבורה. בדקו גם את נוסחאות > מנהל השמות: שמות יכולים להצביע על #REF! אחרי מחיקה.

איך נמנעים מ-#REF! כשמוחקים שורות או עמודות?

הפנו לטווחים במקום לתאים בודדים. =SUM(B2:D2) מצטמצמת ל-=SUM(B2:C2) כשעמודה C או D נמחקת, בעוד ש-=B2+C2+D2 הופכת ל-=B2+#REF!+C2. חיפושים שמציינים את עמודת ההחזרה שלהם, כמו =XLOOKUP(E2,A2:A6,C2:C6), שורדים הוספת עמודות ומחיקת עמודות שהם לא משתמשים בהן.

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

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

להתחיל