במאמר הזה מוסבר איך להשתמש במסננים כדי למיין ולסנן את הנתונים שמוצגים בגיליון אלקטרוני.
המסננים מאפשרים למיין ולסנן את הנתונים שמוצגים כשמציגים גיליון אלקטרוני. המסננים לא משנים את ערכי הנתונים בגיליון האלקטרוני. אפשר להשתמש במסננים כדי להסתיר או למיין מידע באופן זמני. נתונים שתואמים לקריטריוני הסינון שצוינו לא מופיעים כשהמסנן מופעל. בעזרת תצוגות מסוננות, אתם יכולים גם לשמור מסננים שונים עם שמות ולעבור ביניהם מתי שתרצו.
כדי לסנן נתונים שמוחזרים בבקשת Google Sheets API, משתמשים באובייקט DataFilter. מידע נוסף מופיע במאמר בנושא קריאה, כתיבה וחיפוש של מטא-נתונים.
תרחישי שימוש לסינון
הנה כמה תרחישי שימוש לדוגמה במסננים:
- למיין את הנתונים לפי עמודה מסוימת. לדוגמה, אפשר למיין את רשומות המשתמשים לפי שם משפחה.
- הסתרת נתונים שעומדים בתנאי ספציפי. לדוגמה, להסתיר את כל הרשומות מלפני שנתיים.
- הסתרת נתונים שתואמים לערך מסוים. לדוגמה, להסתיר את כל הבעיות עם הסטטוס 'סגור'.
מסנן בסיסי
האובייקט
BasicFilter
של גיליון אלקטרוני הוא מסנן ברירת המחדל שמוחל בכל פעם שמישהו צופה בגיליון האלקטרוני. בכל גיליון יכול להיות רק מסנן בסיסי אחד. כדי להשבית את המסנן הבסיסי, צריך לבטל את הסימון שלו. הפעולה הזו מסירה את המסנן ואת כל ההגדרות שלו מהגיליון האלקטרוני. אם רוצים להפעיל מחדש את אותו מסנן, צריך להגדיר מחדש את הקריטריונים.
ניהול המסנן הבסיסי
כדי להגדיר או לבטל את הסינון הבסיסי, משתמשים בשיטה spreadsheets.batchUpdate עם סוג הבקשה המתאים:
- כדי להגדיר את המסנן הבסיסי, משתמשים בשיטה
SetBasicFilterRequest. - כדי לנקות את הפילטר הבסיסי, משתמשים בשיטה
ClearBasicFilterRequest.
כדי להציג את המסנן הבסיסי, משתמשים בשיטה
spreadsheets.get
ומגדירים את הפרמטר fields של כתובת ה-URL לערך sheets/basicFilter. בדוגמת הקוד הבאה, spreadsheets.getמוצגת כתובת URL של Google Sheets עם field mask:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter
תצוגות מסנן
FilterView הוא מסנן עם שם שאפשר להשבית ולהפעיל מתי שרוצים. בגיליון יכולות להיות כמה תצוגות מסוננות שמורות, אבל אפשר להחיל רק אחת בכל פעם. גיליון יכול להכיל גם מסנן בסיסי וגם כמה תצוגות סינון, אבל אי אפשר להחיל את שניהם בו-זמנית על אותו טווח נתונים.
תרחישי שימוש בתצוגות מסוננות
הנה כמה תרחישי שימוש לדוגמה בתצוגות סינון:
- יש לכם כמה מסננים שונים שאתם רוצים לעבור ביניהם כשאתם צופים בנתונים.
- להחיל מסנן על גיליון אלקטרוני שאין לכם גישת עריכה אליו. במקרה כזה, אפשר ליצור תצוגת מסנן זמנית שרק אתם יכולים לראות.
אתם רוצים שכל אדם שאיתו אתם משתפים את הגיליון האלקטרוני יראה את הנתונים בצורה שונה. כדי לציין את התצוגה המסוננת שרוצים להחיל, צריך לספק את
spreadsheetIdואתfilterViewIdבכתובת ה-URL של הגיליון האלקטרוני. כדי לעשות את זה, משתמשים ב-filterViewIdשמוחזר בתגובה כשיוצרים את תצוגת הסינון.בדוגמת הקוד הבאה מוצגת כתובת URL של Sheets עם תצוגת סינון:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID
ניהול תצוגות מסוננות
כדי ליצור, לשכפל, לשנות או למחוק תצוגות מסוננות, משתמשים בשיטה spreadsheets.batchUpdate עם סוג הבקשה המתאים:
- כדי ליצור תצוגת סינון, משתמשים בשיטה
AddFilterViewRequest. - כדי ליצור עותק של תצוגת סינון, משתמשים בשיטה
DuplicateFilterViewRequest. - כדי לשנות את המאפיינים של תצוגת סינון, משתמשים בשיטה
UpdateFilterViewRequest. - כדי למחוק תצוגת סינון, משתמשים בשיטה
DeleteFilterViewRequest.
כדי להציג רשימה של כל התצוגות המפורטות עם מסננים, משתמשים בשיטה
spreadsheets.get
ומגדירים את פרמטר כתובת ה-URL fields לערך sheets/filterViews. בדוגמה הבאה של קוד spreadsheets.get מוצגת כתובת URL של Sheets עם מסכת שדות:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews
ייצוג של מסנן ב-JSON
בדוגמת הקוד הבאה מוצג ייצוג JSON של אובייקט FilterView. אובייקט BasicFilter זהה, אבל חסרים בו השדות filterViewId ו-title, ואי אפשר להשתמש בו בטווח תאים בעל שם.
{
"filterViewId": number,
"title": string,
"range": {
object(GridRange)
},
"namedRangeId": string,
"sortSpecs": [
{
object(SortSpec)
}
],
"criteria": {
string: {
object(FilterCriteria)
},
...
}
}
נתוני מכירות לדוגמה
בהמשך המסמך הזה יש הפניות לטבלת נתוני המכירות לדוגמה הבאה:
| A | B | C | D | E | F | G | |
| 1 | קטגוריית פריט | מספר הדגם | עלות | כמות | אזור | אנשי מכירות | תאריך משלוח |
| 2 | גלגל ענק | W-24 | $20.50 | 4 | מערב | Beth | 01/03/2016 |
| 3 | דלת | D-01X | $15.00 | 2 | דרום | Amir | 15/03/2016 |
| 4 | מסגרת | FR-0B1 | $34.00 | 8 | מזרח | חנה | 12/03/2016 |
| 5 | חלונית | P-034 | 24.00 ש"ח | 4 | צפון | Devyn | 15/03/2016 |
| 6 | חלונית | P-052 | 11.50$ | 7 | מזרח | Erik | 16/05/2016 |
| 7 | גלגל ענק | W-24 | $20.50 | 11 | דרום | Sheldon | 30/04/2016 |
| 8 | מנוע | ENG-0161 | $330.00 | 2 | צפון | Jessie | 02/07/2016 |
מיון מפרטים
מסנן יכול לכלול כמה הגדרות מיון. המפרטים האלה קובעים איך למיין את הנתונים, והם מוחלים לפי הסדר שצוין. המאפיין
SortSpec.dimensionIndex
מציין את אינדקס העמודה שאליה יחול המיון.
בדוגמת הקוד הבאה מוצגת הגדרת מיון:
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
כשמחילים את ההגדרה הזו על נתוני המכירות לדוגמה, המערכת ממיינת קודם לפי העמודה 'כמות', ואם בשתי שורות יש את אותה כמות, היא ממיינת לפי 'תאריך המשלוח'.
| A | B | C | D | E | F | G | |
| 1 | קטגוריית פריט | מספר הדגם | עלות | כמות | אזור | אנשי מכירות | תאריך משלוח |
| 2 | דלת | D-01X | $15.00 | 2 | דרום | Amir | 15/03/2016 |
| 3 | מנוע | ENG-0161 | $330.00 | 2 | צפון | Jessie | 02/07/2016 |
| 4 | גלגל ענק | W-24 | $20.50 | 4 | מערב | Beth | 01/03/2016 |
| 5 | חלונית | P-034 | 24.00 ש"ח | 4 | צפון | Devyn | 15/03/2016 |
| 6 | חלונית | P-052 | 11.50$ | 7 | מזרח | Erik | 16/05/2016 |
| 7 | מסגרת | FR-0B1 | $34.00 | 8 | מזרח | חנה | 12/03/2016 |
| 8 | גלגל ענק | W-24 | $20.50 | 11 | דרום | Sheldon | 30/04/2016 |
קריטריוני סינון
אובייקט FilterCriteria קובע אילו נתונים מגיליון אלקטרוני יוצגו או יוסתרו במסנן בסיסי או בתצוגת מסנן. כל קריטריון תלוי בערכים בעמודה ספציפית. אתם מספקים את קריטריוני הסינון כמפה שבה המפתחות הם אינדקסים של עמודות והערכים הם הקריטריונים.
אם הקריטריונים מוגדרים באמצעות ערך בוליאני condition, התנאי חייב להיות true כדי שהערכים יוצגו. התנאי לא מבטל את hiddenValues.
אם ערך מסוים מופיע ברשימה hiddenValues, כל ההתאמות של הערך הזה עדיין מוסתרות.
בדוגמת הקוד הבאה מוצגת מפת קריטריונים של מסנן:
{
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
כשמחילים את הקריטריונים האלה על נתוני המכירות לדוגמה, מוצגות רק השורות שבהן הערך בעמודה Item Category (קטגוריית פריט) הוא לא Panel (פאנל), והערך בעמודה Ship Date (תאריך משלוח) הוא לפני April 30, 2016 (30 באפריל 2016).
| A | B | C | D | E | F | G | |
| 1 | קטגוריית פריט | מספר הדגם | עלות | כמות | אזור | אנשי מכירות | תאריך משלוח |
| 2 | גלגל ענק | W-24 | $20.50 | 4 | מערב | Beth | 01/03/2016 |
| 3 | דלת | D-01X | $15.00 | 2 | דרום | Amir | 15/03/2016 |
| 4 | מסגרת | FR-0B1 | $34.00 | 8 | מזרח | חנה | 12/03/2016 |
סינון של דוגמת קוד לתצוגה
בדוגמת הקוד הבאה אפשר לראות איך יוצרים תצוגת מסנן, משכפלים אותה ואז מעדכנים את הגרסה המשוכפלת באמצעות נתוני המכירות לדוגמה.