שתף באמצעות


הפונקציות Filter,‏ Search ו- LookUp

חל על: יישומי בד ציור זרימות שולחן עבודה יישומים מונחי-דגמים Power Platform CLI

מוצאת רשומה אחת או יותר בטבלה.

צפה בסרטון זה כדי ללמוד כיצד להשתמש בפונקציות Filter, **Search, ו-LookUp:

הערה

פקודות PAC CLI pac power-fx לא תומכות בפונקציה Search.

Description

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

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

עבור שתיהן, הנוסחה מוערכת לכל רשומה בטבלה. רשומות שהתוצאה שלהן היא true כלולות בתוצאה. בנוסף לאופרטורים הרגילים של הנוסחה, ניתן להשתמש באופרטורים in ו- exactin עבור התאמות של מחרוזות משנה.

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

הפונקציה Search‎ מוצאת רשומות בטבלה שמכילות מחרוזת באחת מהעמודות שלהן. המחרוזת עשויה להופיע בכל מקום בתוך העמודה; לדוגמה, חיפוש אחר "rob" או "bert" ימצא התאמה בעמודה שמכילה את "Robert". החיפוש אינו תלוי רישיות. בניגוד לפונקציות Filter ו- LookUp, הפונקציה Search משתמשת במחרוזת בודדת, ולא בנוסחה, כדי לבצע התאמה.

הפונקציות Filter‎ ו- Search‎ מחזירות טבלה שמכילה את אותן עמודות של הטבלה המקורית ואת הרשומות שתואמות לקריטריונים. הפונקציה LookUp‎ מחזירה רק את הרשומה הראשונה שנמצאה, לאחר החלת נוסחה כדי לצמצם את הרשומה לערך בודד. אם לא נמצאו רשומות, הפונקציות Filter ו- Search מחזירות טבלה ריקה, והפונקציה LookUp מחזירה blank.

טבלאות הן ערך ב- Power Apps, בדיוק כמו מחרוזת או מספר. ניתן להעביר אותן אל פונקציות ולהחזיר אותן מפונקציות. הפונקציות Filter,‏ Search ו- LookUp אינן משנות את הטבלה. במקום זאת, הן משתמשות בטבלה כארגומנט ומחזירות ממנה טבלה, רשומה או ערך בודד. ראה עבודה עם טבלאות לקבלת פרטים נוספים.

הקצאה

כאשר הדבר יהיה אפשרי, Power Apps יקצה פעולות סינון ומיון למקור הנתונים וידפדף בין התוצאות לפי דרישה. לדוגמה, כאשר אתה מפעיל יישום המציג פקד גלריה המלא בנתונים, רק ערכת הנתונים הראשונה תועבר בתחילה למכשיר. כאשר המשתמש גולל, נתונים נוספים יועברו ממקור הנתונים. התוצאה היא זמן הפעלה מהיר יותר עבור היישום וגישה לערכות נתונים גדולות מאוד.

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

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

עיין במבט כולל על הקצאה לקבלת מידע נוסף.

תחביר

Filter(Table*, Formula1 [, *Formula2*, ... ] )

  • Table - נדרש. הטבלה שבה יש לחפש.
  • Formula(s)‎ - נדרש. הנוסחה שלפיה מוערכת כל רשומה בטבלה. הפונקציה מחזירה את כל הרשומות שהתוצאה שלהן היא true. ניתן להפנות לעמודות בטבלה. אם תספק יותר מנוסחה אחת, התוצאות של כל הנוסחאות ישולבו עם הפונקציה And.‏

Search(Table*, SearchString, Column1 [, *Column2*, ... ] )

  • Table - נדרש. הטבלה שבה יש לחפש.
  • SearchString - נדרש. המחרוזת לחיפוש. אם היא blank או מחרוזת ריקה, כל הרשומות מוחזרות.
  • Column - נדרש. שמות העמודות ב- Table לחיפוש. אם SearchString נמצא בתוך הנתונים של עמודות אלו כהתאמה חלקית, תוחזר הרשומה המלאה.

הערה

ב- Power Apps לפני גרסה 3.24042, שמות העמודות עבור הפונקציה Search צוינו עם מחרוזת טקסט באמצעות מרכאות כפולות, ואם מחוברים למקור נתונים הם גם צריכים להיות שמות לוגיים. לדוגמה, השם הלוגי "cr43e_name" עם מרכאות כפולות שימש במקום שם תצוגה שם ללא מרכאות. עבור מקורות נתונים של SharePoint ו-Excel המכילים שמות עמודות עם רווחים, כל רווח צוין עם "_x0020_", למשל "שם העמודה" כמו "Column_x0020_Name". לאחר גרסה זו, כל האפליקציות עודכנו אוטומטית לתחביר החדש המתואר במאמר זה.

LookUp(Table*, Formula [, *ReductionFormula* ] )

  • Table - נדרש. הטבלה שבה יש לחפש. בממשק המשתמש, התחביר מוצג כ- source מעל תיבת הפונקציה.
  • Formula - נדרש. הנוסחה שלפיה מוערכת כל רשומה בטבלה. הפונקציה מחזירה את הרשומה הראשונה שהתוצאה שלה היא true. ניתן להפנות לעמודות בטבלה. בממשק המשתמש, התחביר מוצג כ- condition‎ מעל תיבת הפונקציה.
  • ReductionFormula - אופציונלי. נוסחה זו מוערכת על הרשומה שנמצאה ולאחר מכן מצמצמת את הרשומה לערך בודד. ניתן להפנות לעמודות בטבלה. אם לא תשתמש בפרמטר זה, הפונקציה תחזיר את הרשומה המלאה מהטבלה. בממשק המשתמש, התחביר מוצג כ- result‎ מעל תיבת הפונקציה.

דוגמאות

הדוגמאות הבאות משתמשות במקור הנתוניםIceCream‎:

מקור נתונים Ice cream.

נוסחה תיאור‬‏‫‬ תוצאה
Filter( IceCream, OnOrder > 0 )‎ מחזירה רשומות שבהן OnOrder‎ גדול מאפס. סדר הסינון.
Filter( IceCream, Quantity + OnOrder > 225 )‎ מחזירה רשומות שבהן הסכום של העמודות Quantity ו- OnOrder‎ גדול מ- 225. כמות וסדר של סינון.
Filter( IceCream, "chocolate" in Lower( Flavor ) )‎ מחזירה רשומות שבהן המילה "chocolate" מופיעה בשם עבור Flavor‎, ללא קשר לרישיות (אותיות רישיות או קטנות). סינון לפי ערך נמוך יותר.
Filter(IceCream, Quantity < 10 && OnOrder < 20) מחזירה רשומות שבהן Quantity‎ קטן מ- 10 ו- OnOrder‎ קטן מ- 20. אין רשומות שתואמות לקריטריונים אלו, ולכן מוחזרת טבלה ריקה. סינון לפי כמות.
Search(IceCream, "choc", Flavor) מחזירה רשומות שבהן המחרוזת "choc" מופיעה בשם עבור Flavor‎, ללא קשר לרישיות (אותיות רישיות או קטנות). פריטי חיפוש.
Search(IceCream, "", Flavor) מכיוון שמונח החיפוש ריק, כל הרשומות מוחזרות. חפש את כל הפריטים.
LookUp( IceCream, Flavor = "Chocolate", Quantity )‎ מחפשת רשומה שבה Flavor‎ שווה ל- "Chocolate" – קיימת רשומה אחת כזו. עבור הרשומה הראשונה שנמצאה, מחזירה את Quantity‎ של רשומה זו. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder )‎ מחפשת רשומה שבה Quantity‎ גדול מ- 150 – קיימות כמה רשומות כאלו. עבור הרשומה הראשונה שנמצאה, בעלת הערך "Vanilla" עבור Flavor, מחזירה את הסכום של העמודות Quantity ו- OnOrder. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder )‎ מחפשת רשומה שבה Flavor‎ שווה ל- "Pistachio" – אין רשומות כאלו. מכיוון שלא נמצאו תוצאות, בדיקת מידע מחזירה ערך ריק. blank
LookUp( IceCream, Flavor = "Vanilla" )‎ מחפשת רשומה שבה Flavor‎ שווה ל- "Vanilla" – קיימת רשומה אחת כזו. מכיוון שלא סופקה נוסחת צמצום, הרשומה מוחזרת במלואה. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75‎ }

סינון עם עמודות בחירה

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

שלב אחר שלב

  1. פתח יישום ריק.

  2. הוסף מסך חדש על-ידי בחירה באפשרות מסך חדש.

  3. בכרטיסיה הוספה, בחר גלריה ולאחר מכן בחר אנכי.

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

  5. (אופציונלי) ברשימה פריסה, בחר אפשרויות שונות.

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

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

    הגדרת ערכי תיבה משולבת.

  8. כעת בחר בפקד Gallery‎ והגדר את המאפיין Items‎ בנוסחה הבאה:

    Filter(Accounts,
     'Industry' = ComboBox3.Selected.Industry Or IsBlank(ComboBox3.Selected.Industry),
     'Relationship Type' = ComboBox2.Selected.'Relationship Type' Or
       IsBlank(ComboBox2.Selected.'Relationship Type'),
     'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact' Or
       IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
    

    מקור נתונים של חשבונות.

חוויית החיפוש של המשתמש

הדוגמאות הבאות משתמשות במקור הנתוניםIceCream‎:

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

הדוגמאות בהמשך מאמר זה מציגות את התוצאות של חיפוש רשימה ששמה לקוחות, שמכילה נתונים אלה:

חיפוש לקוחות.

כדי ליצור ערכת נתונים זו כאוסף, צור פקד Button‎ והגדר את מאפיין OnSelect שלו לנוסחה זו:

ClearCollect(Customers, Table({ Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Mike Collins", Company: "Adventure Works" }, { Name: "Colleen Jones", Company: "Adventure Works" }) )

כמו בדוגמה זו, ניתן להציג רשימת רשומות בפקד Gallery בחלק התחתון של המסך. ליד החלק העליון של המסך, ניתן להוסיף פקד Text input בשם SearchInput כדי שהמשתמשים יוכלו לציין אילו רשומות מענייניות אותם.

חיפוש באמצעות קלט חיפוש.

כאשר המשתמש מקליד תווים ב- SearchInput‎, התוצאות בגלריה מסוננות באופן אוטומטי. במקרה זה, הגלריה מוגדרת להציג רשומות שעבורן שם הלקוח (ולא שם החברה) מתחיל ברצף התווים ב- SearchInput. אם המשתמש מקליד co בתיבת החיפוש, הגלריה מציגה את התוצאות הבאות:‬

חיפוש בעזרת 'מתחיל ב'.

כדי לבצע סינון על בסיס העמודה Name‎, הגדר את המאפיין Items‎ של פקד ה- gallery לאחת מהנוסחאות הבאות:

נוסחה תיאור תוצאה
Filter( Customers, StartsWith( Name, SearchInput.Text ) )‎ מסננת את מקור הנתונים Customers‎ לאיתור רשומות שבהן מחרוזת החיפוש מופיעה בתחילת העמודה Name‎. הבדיקה אינה תלויית רישיות. אם המשתמש מקליד co בתיבת החיפוש, הגלריה מציגה את Colleen Jones ואת Cole Miller. הגלריה אינה מציגה את Mike Collins מכיוון שהעמודה Name עבור רשומה זו אינה מתחילה במחרוזת החיפוש. סינון בעזרת 'מתחיל ב'.
Filter( Customers, SearchInput.Text in Name )‎ מסננת את מקור הנתונים Customers‎ לאיתור רשומות שבהן מחרוזת החיפוש מופיעה במקום כלשהו בעמודה Name‎. הבדיקה אינה תלויית רישיות. אם המשתמש מקליד co בתיבת החיפוש, הגלריה מציגה את Colleen Jones,Cole Miller ו- Mike Collins מכיוון שמחרוזת החיפוש מופיעה במקום כלשהו בעמודה Name של כל הרשומות הללו. סינון בעזרת קלט חיפוש.
Search(Customers, SearchInput.Text, Name) בדומה לשימוש באופרטור in, הפונקציה Search מחפשת התאמה במקום כלשהו בעמודה Name של כל רשומה. עליך לכלול את שם העמודה בתוך מרכאות כפולות. חפש לקוחות.

באפשרותך להרחיב את החיפוש שלך כך שיכלול את העמודה חברה והעמודה שם:

נוסחה תיאור תוצאה
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) מסננת את מקור הנתונים Customers לאיתור רשומות שבהן העמודה Name או העמודה Company מתחילה במחרוזת החיפוש (לדוגמה, co). האופרטור || הוא true אם אחת מהפונקציות מסוג StartsWith היא true. סינון לקוחות שמתחילים ב-.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) מסננת את מקור הנתונים Customers לאיתור רשומות שבהן העמודה Name או העמודה Company מכילה את מחרוזת החיפוש (לדוגמה, co) במקום כלשהו. סינון לקוחות בעזרת קלט חיפוש.
Search(Customers, SearchInput.Text, Name, Company) בדומה לשימוש באופרטור in‎, הפונקציה Search‎ מסננת את מקור הנתונים Customers לאיתור רשומות שבהן העמודה Name או העמודה Company מכילה את מחרוזת החיפוש (לדוגמה, co) במקום כלשהו. הפונקציה Search קלה יותר לקריאה ולכתיבה בהשוואה לפונקציה Filter אם ברצונך לציין כמה עמודות וכמה אופרטורים מסוג in.  חיפוש לקוחות בעזרת קלט חיפוש.