הפונקציה SORTBY
הפונקציה SORTBY מיועדת למיון טווח או מערך נתונים, ומאפשרת למיין על פי עמודה אחת או יותר, ולכלול קריטריונים למיון, שלא יופיע בטווח התוצאות הסופיות.
תחביר:
=SORTBY(array, by_array1, [sort_order1], [by_array2, …])
כאשר array הוא הטווח אותו נרצה למיין
by_array1 – הטווח שעל פי נמיין
sort_order1 – פרמטר אופציינלי שמאפשר לנו לקבוע האם מדובר במיון בסדר עולה (1) או במיון בסדר יורד (1-), כאשר ברירת המחדל היא מיון בסדר עולה.
by_array2 – פרמטר אופציונלי שמאפשר לקבוע סדר מיון נוסף, אם ישנם כמה ערכים עבור המיון בסדר הראשוני, לדוגמה – מיון של שם משפחה, ובתוכו מיון על פי השם הפרטי.
בואו נתחיל מדוגמה פשוטה
לפנינו טבלת עובדים:
אנחנו מעוניינים למיין אותה על פי שכר בסדר יורד, ולכן הפונקציה תיראה כך:
=SORTBY(A2:D21,D2:D21,-1)
כלומר – נמיין את הטבלה שמתפרשת בטווח שבין A2:D21, על פי נתוני המשכורת שנמצאים בעמודה D, בסדר יורד (1-).
וזו התוצאה שהתקבלה:
כאן המקום לציין שתוצאת המיון הזו לא שונה מהתוצאה שהיינו מקבלים לו היינו משתמשים בפונקציה SORT:
=SORT(A2:D21,4,-1)
אך היא נועדה להדגים את אופן השימוש בפונקציה.
רגע לפני שממשיכים, כמה מילים על הכותרת
לפני שנעבור לראות את היתרון של הפונקציה על פני פונקציית SORT פשוטה, הייתי רוצה לדבר על הכותרות:
הטווח שאנחנו פונים אליו לא כולל את הכותרות, משום שאם נכלול אותו, אקסל יתייחס אליו כרשומה רגילה, וימיין אותו יחד עם כל המידע.
לכן הטווח שנבחר לא יכלול את הכותרות, שאותן נוכל להוסיף באחת משתי הדרכים הבאות:
הראשונה טריוויאלית, והיא העתקה של הכותרות והדבקה שלה במקום הרצוי, כשאת הפונקציה נכתוב בשורה שמתחת לכותרות,
והשנייה היא באמצעות הפונקציה VSTACK, שמיועדת לחבר טבלאות אחת מתחת לשנייה, כפי שתוכלו לראות בדוגמה הבאה:
=VSTACK(A1:D1,SORTBY(A2:D21,D2:D21,-1))
כלומר, ביקשתי לאחד את הטווח שמכיל את הכותרות שבין A1:D1, עם הטווח שעליו החלתי את פונקציית המיון SORTBY.
היתרון שבשימוש בפונקציה על פני הדבקת הכותרות, הוא שאם הכותרות ישתנו, זה יבוא לידי ביטוי גם בתוצאת המיון.
ומה היתרון של SORTBY על פני SORT?
למען האמת, לצורך הבסיסי הזה, רוב הסיכויים שהייתי בוחרת בפונקציה SORT, למרות שבפונקציה SORT צריך לבחור את מספר האינדקס של העמודה,
כך שאם נרצה למיין על פי המשכורת, נצטרך לכתוב 4, וזה פחות נוח מאשר לסמן את העמודה שעל פיה נרצה למיין.
אבל הפונקציה SORTBY מאפשרת על פי יותר מאשר עמודה אחת,
כמו שנראה בדוגמה הבאה, שבה ביקשתי למיין על פי אגף בסדר עולה, ובתוך כל אגף מיון על פי משכורת, בסדר יורד.
כך נראית הפונקציה:
=SORTBY(A2:D21,B2:B21,1,D2:D21,-1)
וזו התוצאה שהתקבלה:
בהערת ביניים אציין שגם בפונקציה SORT אפשר למיין על פי יותר מאשר עמודה אחת, אבל זה דורש שימוש מתקדם במערכים שמופיעים בתוך סוגריים מסולסלים, והיא פחות טבעית ומובנת.
יתרון נוסף ומשמעותי של הפונקציה הוא האפשרות למיין על פי עמודה, אבל לא להציג אותה בטבלה הסופית,
כלומר – אני יכולה להציג את העובדים על פי גובה המשכורת, אך מטעמי חיסיון לא להציג את המשכורת שלהם, ואת זה נעשה באופן הבא:
=VSTACK(A1:C1,SORTBY(A2:C21,D2:D21,-1))
כלומר, ביקשתי למיין את הטווח A2:C1, שמכיל את המידע, אך לא כולל את המשכורות, על פי עמודה D,
שאותה כלל לא הצגתי בטבלה הסופית. את הכותרות הוספתי בשימוש בפונקציה VSTACK,
וזו התוצאה שהתקבלה: