Presentation is loading. Please wait.

Presentation is loading. Please wait.

איתור נתונים מתקדם, בעזרת vlookup וחברים

Similar presentations


Presentation on theme: "איתור נתונים מתקדם, בעזרת vlookup וחברים"— Presentation transcript:

1 איתור נתונים מתקדם, בעזרת vlookup וחברים

2 בהדרכה זו: וואו, אתה רציני? אנחנו מכירים vlookup מאז הגנון...
מספר מושגי מפתח vlookup למתחילים פתרונות מתקדמים סיכום

3 אנחנו מכירים vlookup מאז הגנון
ברור שאתם יודעים מה זה vlookup. אגב, אם לא, כדאי להתחיל מהחלק המוקדש ל-vlookup למתחילים. למתקדמים מביניכם, כדאי לדלג ישר לחלקים היותר מעניינים, בהם יוצגו שימושים ב-vlookup עם פונקציות נוספות כגון match, index, sumproduct ועוד. אדגים את הפתרונות השונים ואדון ביתרונות ובמגבלות של כל פתרון. מומלץ בחום לעבור על כל השקפים, אפילו ברפרוף, כדי לחסוך בעיות התמצאות הנובעות מדילוגים... גם אם אתם שולטים בנושא, כדאי לבדוק אם יש עדיין טריקים ששווה ללמוד!

4 מספר מושגי מפתח שדה טווח נתונים טבלה ערך
כדי שכולנו נבין על מה מדובר ונדבר באותה שפה, אגדיר מספר מושגי מפתח: שדה: משתנה, עמודה – קטגוריה אליה משתייך נתון כלשהו. רשומה: תצפית, שורה – נתונים של תצפית אחת, הכוללת ערכים עבור כל השדות (כולל ריקים). ערך: ערכו של שדה מסוים ברשומה מסוימת – הנתון המאוחסן בהצטלבות בין שדה לרשומה. טווח נתונים (או בקיצור: טווח): כלל הנתונים. אוסף של כל הרשומות. טבלה: טווח הנתונים, כשבראשו כותרות, שמהוות את שמות השדות. ערך חיפוש: הערך שאותו מחפשים בעזרת vlookup או פונק' אחרת, בתוך שדה חיפוש, על מנת לקבל את ערכו של שדה התוצאה. שדה חיפוש: שדה שבו מפעילים חיפוש של ערך החיפוש, כדי לאתר את ערכו של שדה התוצאה, באותה הרשומה. שדה תוצאה: שדה, שאת ערכו נקבל בתור תוצאה של חיפוש ערך החיפוש בשדה החיפוש, באותה הרשומה. דוגמא: אם ברצוני לאתר את המחלקה אליה משתייך פריט מס' 7, אז ערך החיפוש הינו "7", שדה החיפוש הינו "מס' פריט" ושדה התוצאה הינו "מחלקה". ערך התוצאה יהיה "שימורים". שדה טווח נתונים טבלה רשומה ערך

5 =vlookup(what, where, result column index, search type)
מבנה הפונקציה: =vlookup(what, where, result column index, search type) כאשר יש להזין את הפרמטרים הבאים: what – ערך החיפוש where– טווח החיפוש result column index – המספר הסידורי של שדה התוצאה. הפונקציה בנויה כך שהשדה הראשון בטווח הינו בהכרח שדה החיפוש, ומספרו הסידורי הוא 1. מספר השדה הצמוד אליו הוא 2... וכך הלאה עבור כל השדות. Search type – סוג החיפוש: מדויק (הערך 0) או מקורב (הערך 1): סוגי חיפוש: חיפוש מדויק: חיפוש של ערך מסוים מבין כלל הערכים בשדה החיפוש. במקרה שערך החיפוש לא אותר במדויק, הפונקציה תחזיר #N/A (Not Available). דגשים: שדה החיפוש וערך החיפוש יכולים להיות הן ערכים מספריים והן ערכי טקסט. כמו כן, כיוון שמחפשים ערך ספציפי, אין משמעות למיון טווח הנתונים. חיפוש מקורב: חיפוש של ערך מסוים בטווח שבין כלל הערכים בשדה החיפוש. במקרה שערך החיפוש לא אותר במדויק, החיפוש ייעצר בערך הראשון הקטן מערך החיפוש, ותחזיר את ערכו של שדה התוצאה עבור רשומה זו. שדה החיפוש וערך החיפוש חייבים להיות ערכים מספריים בבסיסם (אפשר, למשל, גם תאריכים). כמו כן, כדי שהפונקציה תחזיר תוצאות נכונות, הטווח חייב במיון לפי שדה החיפוש בסדר עולה.

6 Vlookup למתחילים דוגמא לחיפוש מדויק: =vlookup(7,$A$2:$G$11,3,0)
נקבל את הערך "שימורים", כיוון שנמצאה רשומה שערכה "7" בשדה "מס' פריט", שהינו השדה הראשון בטווח ולכן זהו גם שדה החיפוש. הפונקציה תחזיר את ערכו של שדה מס' 3 בטווח, "מחלקה", עבור הרשומה שנמצאה. אגב, אם אתם לא שולטים בנושא קיבוע תאים (סימני ה-$ בדוגמא למעלה, כדאי לעיין כאן

7 Vlookup למתחילים דוגמא לחיפוש מקורב: =vlookup(6450,$A$2:$B$8,2,1)
נקבל את הערך 25, כיוון שהחיפוש יסתיים ברשומה שערכה 6000 בשדה "שכר", שהינו הערך הראשון אשר נמוך מערך החיפוש – 6450. אנחנו נקבל בדיוק את אותה תוצאה גם עבור חיפוש של הערך 6000 וגם עבור חיפוש של הערך אולם, אם נחפש את הערך 8000, נקבל תוצאה = 30.

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

9 כאן תוכל ללמוד כיצד לעקוף בעיה זו
מגבלות הפונקציה שדה החיפוש הינו תמיד השדה הראשון. במקרה בו שדה התוצאה מופיע אחרי שדה החיפוש, אפשר פשוט להפעיל את הפונקציה על טווח חלקי, כך ששדה החיפוש יהיה השדה הראשון בטווח. למשל, בדוגמא הראשונה, הפונקציה =vlookup(“תירס",$B$2:$G$11,2,0) תחזיר את התוצאה "שימורים", כיוון שהגבלתי את הטווח כך שיתחיל מעמודה B, ובכך הפכתי את השדה "שם פריט" לשדה הראשון בטווח – כלומר, לשדה החיפוש עם זאת, פתרון זה לא יאפשר להחזיר תוצאה של שדות שהושארו מחוץ לטווח. למשל, במקרה הנ"ל, לא ניתן לאתר את מס' הפריט של "תירס", כיוון שהשדה "מס' פריט" אינו נמצא בטווח המצומצם. במקרה כזה, אין ברירה אלא לארגן מחדש את סדר השדות בטווח, מה שלא תמיד אפשרי. כאן תוכל ללמוד כיצד לעקוף בעיה זו

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

11 פתרונות מתקדמים שדה התוצאה הינו יחסי. - הפתרון: נא להכיר את פונקצית match פונקציה זו נותנת מענה מושלם לבעיית אי-האפשרות לציין את שם שדה התוצאה באופן ישיר בפונקצית ה-vlookup, ע"י זה שהיא מקבלת כקלט את שם השדה, ומחזירה את מיקומו היחסי בטווח, בדיוק כמו ש-vlookup דורשת. מבנה הפונקציה: =match(what, where, search type) כאשר יש להזין את הפרמטרים הבאים: what – ערך החיפוש. לצרכים שלנו, נציין את שם שדה התוצאה המבוקש. where– טווח החיפוש. במקרה זה, נגדיר את שורת הכותרות של הטבלה כטווח החיפוש. Search type – סוג החיפוש: מדויק או מקורב. זהה מבחינה זאת ל-vlookup. בשימוש זה של הפונקציה, נשתמש תמיד בחיפוש מדויק, היות ואין משמעות לאיתור מקורב של שם שדה. כאן תוכל ללמוד כיצד לעקוף בעיה זו

12 =vlookup(7,$A$2:$G$11,match(“מחלקה“,$A$1:$G$1,0),0)
פתרונות מתקדמים דוגמא לשימוש ב-vlookup בשיתוף עם match: =vlookup(7,$A$2:$G$11,match(“מחלקה“,$A$1:$G$1,0),0) פונקצית match תחזיר את הערך 3, כיוון שהשדה "מחלקה" נמצא במקום ה-3 בטווח שצוין ($A$1:$G$1). לכן, נקבל: =vlookup(7,$A$2:$G$11,3,0)

13 פתרונות מתקדמים שדה החיפוש הינו תמיד ראשון. הפתרון: פונקצית index
פונקציה זו, בשילוב עם פונקצית match, מחליפה את ה-vlookup לגמרי, ע"י פעולת חיפוש מסוג שונה: תחילה, מוצאים בעזרת match את מספרה הסידורי של הרשומה שבה נמצא הערך המבוקש בשדה החיפוש, ולאחר מכן, index מחזירה את הערך הרלוונטי בשדה התוצאה. מבנה הפונקציה: =index(where, result record index) כאשר יש להזין את הפרמטרים הבאים: where– טווח החיפוש. במקרה זה, כאן יופיע הטווח של שדה התוצאה. Result record index – מספר הרשומה הרלוונטית, שאותו נאתר בעזרת match, כך שבסוף נקבל: =index(where, match(what, where, search type))

14 =index($A$2:$A$11,match(“תירס",$B$2:$B$11,0))
פתרונות מתקדמים דוגמא לשימוש ב-index בשיתוף עם match: =index($A$2:$A$11,match(“תירס",$B$2:$B$11,0)) פונקצית match תחזיר את הערך 7, כיוון שערך החיפוש "תירס" נמצא ברשומה ה-7 בטווח שצוין ($B$2:$B$11). לכן, נקבל: =index($A$2:$A$11,7) שבתורו יחזיר לנו את הערך "7" – הערך שנמצע שביעי בטווח ה-index פתרון זה, על אף שמאפשר לנו לבצע חיפוש בכל שדה ללא קשר למיקומו היחסי, מוגבל מהיבט אחר: יש צורך לציין במפורש את הטווחים של שדה החיפוש ושדה התוצאה, ולא ניתן להזינם כפרמטר.

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

16 פתרונות מתקדמים מבנה הפונקציה בתצורה זו הינו:
=sumproduct(array1, array2, array3…) כאשר יש להזין את הטווחים הרלוונטיים, כשהם זהים בגדלם: כל ערך מ-array1 יוכפל בערך התואם ב-array2 וכו', ולאחר מכן הפונקציה תחזיר את סכום מכפלות אלה כמספר יחיד. אך מה הקשר לבעיה שלפנינו? הקשר הוא שניתן להשתמש בפונקצית sumproduct בדרך יצירתית במיוחד. ניתן לייצר מערכים מלאכותיים עם ערכים מסוג true/false כדי להפעיל תנאים רב-מימדיים לצורך איתור נתונים. =sumproduct((טווח שדה חיפוש=ערך חיפוש)*1, שדה תוצאה) כאן תוכל ללמוד כיצד לעקוף בעיה זו

17 פתרונות מתקדמים דוגמא לשימוש בsumproduct- לצרכי איתור:
=sumproduct((“אפונה"=$B$2:$B$10(*1,(201203=$C$2:$C$10)*1,$D$2:$D$10) החלק הראשון (לפני הפסיק הראשון) יחזיר מערך וירטואלי של: {FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE} כאשר true מציין שהרשומה הספציפית עומדת בתנאי החיפוש. הכפלה של המערך הוירטואלי הנ"ל ב-1 יוצרת מערך נומרי מתאים: {1;0;0;1;0;0;1;0;0} כאשר מבחינתנו, רשומות אשר עומדות בתנאי מקבלות מקדם 1 ורשומות שאינן עומדות בתנאי מקבלות מקדם 0. כלומר, הרשומות 3,6,9 עומדות בתנאי. פעולה זהה מתבצעת על שדה "תקופה", כאשר הרשומות העומדות בתנאי הן 7,8,9.

18 פתרונות מתקדמים המשך: נקבל את שלושת המערכים הבאים:
עתה, פונקצית sumproduct מכפילה כל ערך בערך התואם לו בכל המערכים. נקבל: לסיום, סכימה של כל התוצאות מהשלב הקודם: נקבל 9.6, השייך לרשומה שעמדה בכל התנאים.

19 פתרונות מתקדמים מגבלות
בדומה ל-index, לא ניתן לציין שמות של שדות, אלא יש צורך לציין טווחים היות ויש שימוש במכפלות וסכומים, טווח שדה התוצאה יכול להכיל ערכים מספריים בלבד. לא ניתן להשתמש ב-sumproduct לאיתור ערכי טקסט. עם זאת, כמו שמופיע בדוגמא, אין בעיה להשתמש בערכי טקסט בשדות החיפוש. במידה ויותר מרשומה אחת תעמוד בכל התנאים, הפונקציה תחזיר את סכום ערכי התוצאה של כל הרשומות. למשל, אם בדוגמא היינו משתמשים רק בתנאי המופעל על שדה "שם פריט"="אפונה", ללא שימוש בתנאי המופעל על שדה "תקופה", היינו מקבלים סכום של עלויות הפריטים עבור שלושת התקופות המופיעות בטבלה – תוצאה חסרת היגיון בפן העסקי. זאת, בניגוד ל-vlookup ו-match, אשר היו מחזירות רק את הערך הראשון שהיה עונה על התנאים. לעיתים, סכימה של כל התוצאות היא בדיוק מה שנדרש. אולם במידה ואין זה כך, יש לדאוג שחיתוך בין כל התנאים מניב תוצאה בודדת. כלומר, יש להפעיל תנאים על מספר השדות המתאים, כך שתתקבל תוצאת חיתוך בודדת.

20 פתרונות מתקדמים שימוש ב-sumproduct בטבלאות cross-tab
שורת הכותרת של הטבלה מציגה את כל ערכי שדה מספר 1, בעוד שעמודה ראשונה מציגה את כל ערכי שדה מספר 2, כך שהטווח שנוצר מכיל את ערכי שדה מספר 3, בכל אחד מהחיתוכים האפשריים בין שדות 1 ו-2: היות ופונקצית sumproduct עובדת על מערכים, ניתן להפעילה באופן דו-מימדי: =sumproduct((“אפונה"=$A$2:$A$4(*1,(201203=$B$1:$D$1)*1,$B$2:$D$4) שימו לב, את הערך "אפונה" מחפשים רק בעמודה A, בעוד שאת הערך מחפשים רק בשורה מס' 1. לעומת זאת, טווח החיפוש מוגדר ככל טווח הנתונים – טווח דו-מימדי.

21 פתרונות מתקדמים קיצור דרך בכתיבת הפונקציה
אם ה-"*1" מעצבן אתכם כמו שהוא מעצבן אותי, ישנו כתיב מקוצר: במקום לרשום: =sumproduct((טווח שדה חיפוש=ערך חיפוש)*1, שדה תוצאה) ניתן לרשום: =sumproduct((טווח שדה חיפוש=ערך חיפוש)*שדה תוצאה) כלומר, מוותרים על הפסיקים ופשוט מכפילים את כל המערכים אחד בשני. הפונקציה תחזיר בדיוק את אותה התוצאה. אגב, יש לשים לב! כל מערך מלאכותי שנוצר מהפעלת תנאי חייב להיות בסוגריים, בעוד שטווח התוצאה לא חייב סוגריים

22 סיכום לסיכום, vlookup זה נחמד, אך שימוש יצירתי בכלים משלימים מאפשר להשיג תוצאות טובות יותר וברמת דיוק גבוהה יותר. מקווה שנהניתם! אתם מוזמנים להפיץ לחברים


Download ppt "איתור נתונים מתקדם, בעזרת vlookup וחברים"

Similar presentations


Ads by Google