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

הפתרון מבוסס מקרו מחקה את אימות הנתונים. הפתרון עם נוסחאות מבוסס על גישה אחרת. במקום לשאול "איך אני מפעיל שתי שיטות שונות של אימות נתונים על אותו תא", אנו שואלים "איך אני מונע הכנסה בתא של ערכים שכבר קיימים בטבלה".

הפתרון מבוסס על בנייה של רשימה מתגלגלת עם אימות נתונים מבוססת על רשימה דינמי בה מופיעים רק שמות שטרם הוכנסו בטבלה.

בסרטון הבא אפשר לראות שאחרי שמכניסים את "אסתר" בטבלה, השם נעלם מהרשימה המתגלגלת

המודל של הפתרון מבוסס על רשימה של כל השמות המותרים ורשימה נוספת בה מופיעים רק שמות שטרם שובצו בטבלה.

הטווח A5:A16 מכיל את כל השמות.

התאים הטווח B5:B16 ("aux1") מכיל את התוצאות של הנוסחה

=IF(COUNTIF($H$5:$H$7,$A$5:$A$16)=1,"",A5)

המשמעות: אם שם ברשימת השמות כבר מופיע בטבלה, התוצאה תהיה string באורך 0 (התא אינו ריק שהרי מכיל את הנוסחה); אם השם טרם מופיע בטבלה הוא יופיע ב-"aux1".

התאים בטווח C5:C16 מכילים את הנוסחה:

=COUNTIF($B$5:$B$16,"<"&B6)

הנוסחה מדרגת את הערכים של הטווח aux1; תאים ללא שם מקבלים את הערך 0, תאים אחרים מקבלים ערך לפי סדר האלף בית.

הטווח aux3 בנוי עם הנוסחה

=LARGE($C$5:$C$16,$B$1-ROW()+5)

הנוסחה מסדרת את הערכים שך aux2 בסדר עולה; תאים עם ערך 0 מחזירים ערך !NUM# טעות.

הצעד לפני האחרון הוא לבנות את הרשימה שך המספרים הפנוים (הטווח Available) בנוי עם הנוסחה

=INDEX($A$5:$A$16,MATCH(D5,$C$5:$C$16,0))

שמתרגם את רשימת המספרים של aux3 לשמות.

הצעד האחרון הוא ליצור שם (Defines Name) שיכלול את השמות של Available באופן דינמי

השם List_of_Names2 מפנה לנוסחה

=OFFSET(formula!$E$5,0,0,formula!$B$1,1)

הנוסחה משתמשת בתא  B1 שמכילה את הנוסחה

=COUNTIF($C$5:$C$16,">0")

כך השם המוגדר שלנו יכלול רק את השמות ולא את ערכי הטעות.

אפשר להסתיר את העמודות A:E

בטבלה שם מגדירים רשימה נפתחת עם אימות נתונים שמשתמש בשם List_of_Names2 כמקור הנתונים

ניתן להוריד את הקובץ, כולל גם את המקרו של הפוסט הקודם, כאן.

בארגון בו אני עובד הוחלט לעבור ל-Office 2010 ישר מ-Office 2003 ללא תחנת ביניים בגרסה 2007 של החבילה. זוהי החלטה נהדרת (כמובן, לדעתי) בעיקר למשתמשי Excel כבדים (וכבדים פחות). ב-Excel 2010 הוכנסו הרבה שיפורים וגן כלים חדשים.

עם זאת, כל מעבר מסביבה מוכרת לממשק משתמש חדש כרוך בקשיים. כאן אני פותח בסידרה של פוסטים בנושאים הקשורים למעבר ל-Excel 2010 במטרה להקל על המעבר וגם להכיר את השיפורים וכלים החדשים.

הנושא הראשון: מקרוס או בפרפרזה "מי הזיז את תפריט המקרוס שלי?"

כמו בגרסה 2007, ביישמוי Office 2010 הוחלפו התפריט וסרגלי הכלים ב"רצועת כלים" (ribbon). הרצועה כוללת "כרטיסים" (tabs) ובכרטיסים "קבוצות"  (groups) של פקודות. ב-Office 2010, בשונה מ-Office 2007, אפשר לבצע התאמה אישית של הרצועה, אבל נושא זה יטופל בפוסט אחר.

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

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

1 – מקליקים על הכרטיס "קובץ" ובוחרים ב"אפשרויות Excel"

2 – בוחרים ב"מרכז יחסי אמון"

המשך קריאה »

בפוסט הקודם הראנו איך להתמודד עם הבעיה של המספרים הגדולים ב-Excel (מספרים בעלי 16 ספרות ויותר).  הפתרון הוא להזין את המספרים בתאים שהוגדרו מראש כ"טקסט".

פתרון זה יוצר מיד שתי בעיות:

  • לא נוכל לבצע חישובים
  • ה"מספרים" יתמיינו כטקסט

בטבלה הבאה הטווח B3:B6 מכיל מספרים אקראיים והטווח D3:D6 מכיל אותם הערכים שהומרו לטקסט

כך יראו שני הטווחים אחרי מיון מקטן לגדול באמצעות צלמית המיון

אפשר לאלץ את Excel למיין את הערכים בטווח D3:D6 כמספרים באמצעות התפריט "נתונים – מיון". הפעלת התפריט במקום לחיצה ישירה על הצלמית תפתח תיבת דו שיח עם מספר אפשרויות. הסרטון הבא מדגים את התהליך

© 2012 LookUp - פתרונות Excel והדרכה מתקדמת Suffusion WordPress theme by Sayontan Sinha