מכירים את זה שאתם עושים נוסחה שבה אתם בוחרים איזה שהוא תא בשורה מעל למשל, ואז מריצים את הנוסחה על כל השורות, כך שכל שורה לוקחת מהשורה שמעליה, אך במקרה שמוסיפים או מוחקים שורות כל הנוסחה משתבשת?.
אז זהו שיש לכך פיתרון מדהים, אבל לפני כן בא ונבין למה זה קורה?, כלומר מדוע כשאני מוחק שורה אז בעצם הוא לא ‘מחפש’ את השורה מעליו?
הסיבה לכך היא, שנניח ואנחנו בעמודה A ואנחנו רוצים לעשות נוסחה שיקח את הערך בשורה מעל ויוסיף לו 1
אז מה אנחנו עושים? רושמים (A17+1=) כלומר תיקח את התא בשורה 17 ותוסיף לו אחד, ובאמת כשאני יגרור את הנוסחא למטה, הוא גם יגרור באופן יחסי את התא, כלומר בשורה מתחת הנוסחה תהיה (A18+1=), מה שאומר שהאקסל ‘כביכול חכם’ והוא ‘מתחבר’ לתא ממש ולאו דווקא למספר התא, ולכן ברגע שנמחוק את את התא הזה, הוא פשוט ימשיך לחפש אותו ולא ימצא אותו לעולמים על פניו…
אז מה הפיתרון?
במקום לכתוב (A17+1=) אנחנו ‘נבנה’ את הנוסחה בצורה הזו INDIRECT(“A17”)+1= מה עשינו פה? רשמנו את שם התא כביכול בטקסט ולא בבחירת תא רגיל,
עכשיו גם אם אני מוחק הוא תמיד ילך לשורה 17 או מוחקים
אבל עדיין גם אם נמשוך את הנוסחה תמיד הוא יקח את הנתון מ- A17 ולא יגרר באופן יחסי, ולכן הפיתרון האמתי הוא לעשות נוסחה בעמודה ליד או בתוך הנוסחה (1-()ROW= ואז הוא יחזיר את מספר השורה פחות 1, ובצירוף שני הנוסחאות זה יעבוד מעולה)
ככה: INDIRECT(“T”&ROW()-1)+1= ואז זה יחזיר את הנתון בשורה מעל, גם אם השורה נמחקת…