फ़िल्टर, खोज और लुकअप फ़ंक्शन
इस पर लागू होता है: कैनवास ऐप्स डेस्कटॉप प्रवाह मॉडल-संचालित ऐप्स Power Pages Power Platform CLI
एक तालिका में एक या अधिक रिकॉर्ड ढूँढता है.
फ़िल्टर, **खोज, और लुकअप फ़ंक्शन का उपयोग करने का तरीका जानने के लिए यह वीडियो देखें:
नोट
PAC CLI pac power-fx कमांड खोज फ़ंक्शन का समर्थन नहीं करते हैं।
विवरण
Filter फ़ंक्शन तालिका में उन रिकॉर्ड को ढूँढता है, जो एक सूत्र को संतुष्ट करते हैं. एक या अधिक मानदंडों से मेल खाने वाले रिकॉर्डों के सेट को खोजने के लिए फ़िल्टर का उपयोग करें और जो रिकॉर्ड मेल नहीं खाते उन्हें त्याग दें।
LookUp फ़ंक्शन, तालिका में उस प्रथम रिकॉर्ड को ढूँढता है, जो एक सूत्र को संतुष्ट करता है. एकल रिकॉर्ड, जो एक या अधिक मापदंडों से मेल खाता है, ढूँढने के लिए LookUp का उपयोग करें.
दोनों के लिए, सूत्र का मूल्यांकन तालिका के सभी रिकॉर्ड के लिए किया जाता है. जिन रिकॉर्ड के परिणाम सही में प्राप्त होते हैं, वे परिणाम में शामिल होते है. सामान्य सूत्र ऑपरेटर के अतिरिक्त, आप सबस्ट्रिंग मिलानों के लिए in और exactin ऑपरेटर का उपयोग कर सकते हैं.
वर्तमान में संसाधित की जा रही रिकॉर्ड की फ़ील्ड फ़ॉर्मूला में उपलब्ध हैं. ThisRecord ऑपरेटर या केवल नाम से संदर्भ फ़ील्ड का उपयोग करें, जैसे आप किसी अन्य मान के साथ करेंगे. संसाधित किए जा रहे रिकॉर्ड को नाम देने के लिए As ऑपरेटर का भी उपयोग किया जा सकता है, जो आपके सूत्र को समझ पाना आसान बना सकता है और नेस्टेड रिकॉर्ड को सुलभ बना सकता है. अधिक जानकारी के लिए, नीचे दिए गए उदाहरणों को देखें और रिकॉर्ड कार्यक्षेत्र के साथ कार्य करें.
Search फ़ंक्शन तालिका में वे रिकॉर्ड ढूँढता है जिसके स्तंभों में किसी एक में स्ट्रिंग शामिल होती है. स्ट्रिंग कॉलम के भीतर कहीं भी हो सकती है; उदाहरण के लिए, "रॉब" या "बर्ट" की खोज करने पर "रॉबर्ट" वाले कॉलम में मिलान मिलेगा। खोज केस-असंवेदी होता है. Filter और LookUp से भिन्न, Search फ़ंक्शन मिलान करने के लिए सूत्र के बजाय स्ट्रिंग का उपयोग करता है.
फ़िल्टर और खोज एक तालिका लौटाते हैं जिसमें मूल तालिका के समान कॉलम और मापदंड से मेल खाने वाले रिकॉर्ड होते हैं। LookUp रिकॉर्ड को एकल मान तक कम करने के लिए सूत्र लागू करने के बाद, केवल पाया गया पहला रिकॉर्ड लौटाता है। यदि कोई रिकॉर्ड नहीं पाया गया, तो Filter और Search रिक्त तालिका देते हैं, और LookUp रिक्त देता है.
तालिकाएँ Power Apps में एक मान हैं, ठीक एक स्ट्रिंग या संख्या की तरह। उन्हें फ़ंक्शन को पास किया जा सकता है और वहाँ से लौटाया जा सकता है. फ़िल्टर, खोज, और लुकअप तालिका को संशोधित न करें. इसके बजाय, वे तालिका को एक तर्क के रूप में लेते हैं, और उससे एक तालिका, एक रिकॉर्ड या एक एकल मान देते हैं. अधिक जानकारी के लिए, तालिकाओं के साथ कार्य करना देखें.
प्रत्यायोजन
संभव होने पर, Power Apps माँग पर परिणामों के माध्यम से डेटा स्रोत और पृष्ठ पर फ़िल्टर और क्रमबद्ध कार्रवाइयाँ प्रत्यायोजित करेगा. उदाहरण के लिए, जब आप एक ऐसा ऐप शुरू करते हैं जो डेटा से भरी गैलरी नियंत्रण दिखाता है, तो शुरुआत में केवल रिकॉर्ड का पहला सेट ही लाया जाएगा. जैसे-जैसे उपयोगकर्ता स्क्रॉल करता है, डेटा स्रोत से अतिरिक्त डेटा नीटे आ जाता है. इसका परिणाम ऐप के लिए तेज़ प्रारंभ समय और बहुत बड़े डेटा सेट की पहुँच है.
हालाँकि, हो सकता है कि प्रत्यायोजन हर समय संभव न हो. डेटा स्रोतों में इस आधार पर भिन्नता होती है कि प्रत्यायोजन के साथ कौन से फ़क्शन और ऑपरेटर का वे समर्थन करते हैं. यदि फ़ॉर्मूला का पूर्ण प्रत्यायोजन संभव नहीं है, तो लेखन परिवेश उस भाग को फ़्लैग करेगा जिसे चेतावनी के साथ प्रत्यायोजित न किया जा सकता हो. संभव होने पर, प्रत्यायोजित न किए जा सकने वाले फंक्शन और ऑपरेटरों को अनदेखा करने के लिए फ़ॉर्मूला को परिवर्तित करना निर्दिष्ट करें. प्रत्यायोजन सूची विवरण जिनपर डेटा स्रोतों और संचालनों को प्रत्यायोजित किया जा सकता है.
यदि प्रत्यायोजन संभव न हो, तो Power Apps स्थानीय रूप से कार्य करने के लिए रिकॉर्ड का केवल एक छोटा सा सेट नीचे लाएगा. फ़िल्टर और सॉर्ट फंक्शन रिकॉर्ड के कम सेट पर काम करेंगे. गैलरी में जो उपलब्ध है, हो सकता है कि वह पूर्ण कहानी न हो, जो उपयोगकर्ताओं के लिए भ्रामक हो सकता है.
अधिक जानकारी के लिए, प्रत्यायोजन अवलोकन देखें.
सिंटैक्स
फ़िल्टर(तालिका*, फ़ॉर्मूला1 [, *फ़ॉर्मूला2*, ... ] )
- तालिका - आवश्यक. खोजने के लिए तालिका.
- सूत्र - आवश्यक. वह सूत्र, जिसके द्वारा तालिका के सभी रिकॉर्ड का मूल्यांकन किया जाता है. फ़ंक्शन वे सभी रिकॉर्ड देता है जिनका परिणाम सही में है. आप तालिका के भीतर स्तंभों को संदर्भित कर सकते हैं. यदि आप एक से अधिक सूत्र की आपूर्ति करते हैं, तो सभी सूत्रों के परिणाम And फ़ंक्शन द्वारा संयुक्त कर दिए जाते हैं.
खोज(तालिका*, खोजस्ट्रिंग, स्तंभ1 [, *स्तंभ2*, ... ] )
- तालिका - आवश्यक. खोजने के लिए तालिका.
- SearchString - आवश्यक. वह स्ट्रिंग जिसके लिए खोज की जाएगी. यदि रिक्त या एक रिक्त स्ट्रिंग है, तो सभी रिकॉर्ड दिए जाते हैं.
- कॉलम - आवश्यक. तालिका के भीतर स्तंभों का नाम, जिन्हें खोजा जाना है. यदि इन स्तंभों में किसी में भी डेटा के भीतर SearchString एक आंशिक मिलान के रूप में मिलता है, तो पूरा रिकॉर्ड दिया जाएगा.
नोट
संस्करण 3.24042 से पहले, खोज फ़ंक्शन के लिए स्तंभ नामों को दोहरे उद्धरण चिह्नों का उपयोग करके एक टेक्स्ट स्ट्रिंग के साथ निर्दिष्ट किया गया था, और यदि उन्हें डेटा स्रोत से जोड़ा गया था तो उन्हें तार्किक नाम भी होना चाहिए था। Power Apps उदाहरण के लिए, उद्धरण चिह्नों के बिना प्रदर्शन नाम नाम के स्थान पर तार्किक नाम "cr43e_name" दोहरे उद्धरण चिह्नों के साथ उपयोग किया गया था। SharePoint और Excel डेटा स्रोतों के लिए जिनमें रिक्त स्थान के साथ स्तंभ नाम होते हैं, प्रत्येक रिक्त स्थान को "_x0020_" के साथ निर्दिष्ट किया गया था, उदाहरण के लिए "स्तंभ नाम" के रूप में "स्तंभ_x0020_नाम". इस संस्करण के बाद, सभी ऐप्स स्वचालित रूप से इस आलेख में वर्णित नए सिंटैक्स में अपडेट हो गए।
लुकअप(तालिका*, सूत्र [, कटौतीसूत्र] )
- तालिका - आवश्यक. खोजने के लिए तालिका. UI में, सिंटैक्स को फ़ंक्शन बॉक्स के ऊपर स्रोत के रूप में दिखाया गया है.
- सूत्र - आवश्यक. वह सूत्र, जिसके द्वारा तालिका के सभी रिकॉर्ड का मूल्यांकन किया जाता है. फ़ंक्शन वह प्रथम रिकॉर्ड देता है जिसका परिणाम सही में आता है. आप तालिका के भीतर स्तंभों को संदर्भित कर सकते हैं. UI में, सिंटैक्स को फ़ंक्शन बॉक्स के ऊपर शर्त के रूप में दिखाया गया है.
- ReductionFormula - वैकल्पिक. इस सूत्र का मूल्यांकन पाए गए रिकॉर्ड पर किया गया, और फिर यह रिकॉर्ड को एक एकल मान तक घटा देता है. आप तालिका के भीतर स्तंभों को संदर्भित कर सकते हैं. यदि आप इस पैरामीटर का उपयोग नहीं करते हैं, तो फ़ंक्शन तालिका से पूरा रिकॉर्ड देता है. UI में, सिंटैक्स को फ़ंक्शन बॉक्स के ऊपर परिणाम के रूप में दिखाया गया है.
उदाहरण
निम्नलिखित उदाहरण IceCream डेटा स्रोत का उपयोग करते हैं:
सूत्र | विवरण | परिणाम |
---|---|---|
फ़िल्टर(आइसक्रीम, ऑनऑर्डर > 0) | वे रिकॉर्ड देता है, जहाँ OnOrder शून्य से अधिक है. | |
फ़िल्टर(आइसक्रीम, मात्रा + ऑनऑर्डर > 225) | वे रिकॉर्ड देता है, जहाँ Quantity और OnOrder स्तंभ का योग से 225 अधिक है. | |
फ़िल्टर(आइसक्रीम, "चॉकलेट" निम्न(स्वाद) में) | वे रिकॉर्ड देता है जहाँ "chocolate" शब्द Flavor नाम, अपरकेस या लोअरकेस अक्षरों से निरपेक्ष, दिखाई देता है. | |
फ़िल्टर(आइसक्रीम, मात्रा < 10 && ऑनऑर्डर < 20) | वे रिकॉर्ड देता है, जहाँ Quantity 10 से कम और OnOrder 20 से कम है. कोई भी रिकॉर्ड इन मापदंडों से मेल नहीं खाता, इसलिए एक रिक्त तालिका दी गई है. | |
खोज(आइसक्रीम, "चॉक", स्वाद) | वे रिकॉर्ड देता है जहाँ "choc" स्ट्रिंग Flavor नाम, अपरकेस या लोअरकेस अक्षरों से स्वतंत्र, में दिखाई देता है. | |
खोज(आइसक्रीम, "", स्वाद) | चूँकि खोज शब्द रिक्त हैं, अतः सभी रिकॉर्ड दिए जाते हैं. | |
लुकअप(आइसक्रीम, स्वाद = "चॉकलेट", मात्रा) | स्वाद "चॉकलेट" के बराबर वाले रिकॉर्ड की खोज करता है, जिसमें से एक है। ढूँढे गए प्रथम रिकॉर्ड के लिए, उस रिकॉर्ड की Quantity देता है. | 100 |
लुकअप(आइसक्रीम, मात्रा > 150, मात्रा + ऑनऑर्डर) | उस रिकॉर्ड के लिए खोज करता है, जिसमें Quantity 150 से अधिक है, जो इनमें एकाधिक मौजूद हैं. ढूँढे गए प्रथम रिकॉर्ड के लिए, जो "Vanilla" Flavor का है, Quantity और OnOrder स्तंभों का योग देता है. | 250 |
लुकअप(आइसक्रीम, स्वाद = "पिस्ता", ऑनऑर्डर) | उस रिकॉर्ड के लिए खोज करता है जिसमें Flavor "Pistachio" के बराबर है, जो इसमें कोई नहीं है. क्योंकि कोई नहीं मिला है, Lookup खाली वापस होता है. | खाली |
लुकअप(आइसक्रीम, स्वाद = "वेनिला") | स्वाद "वेनिला" के बराबर वाले रिकॉर्ड की खोज करता है, जिसमें से एक है। चूंकि कोई घटाव सूत्र नहीं लगाया गया था, इसलिए पूरा रिकॉर्ड दिया जाता है. | { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 } |
पसंद के कॉलम के साथ फ़िल्टर करना
निम्नलिखित उदाहरण डेटा स्रोत के रूप में Microsoft Dataverse में अकाउंट तालिका का उपयोग करता है. इस उदाहरण से पता चलता है कि चयनित कॉम्बो बॉक्स नियंत्रण मानों के आधार पर अकाउंटों की सूची को फ़िल्टर कैसे करें:
चरण दर चरण
एक खाली अनुप्रयोग खोलें.
नई स्क्रीन विकल्प चुनकर एक नई स्क्रीन जोड़ें.
इन्सर्ट टैब पर, गैलरी चुनें और फिर लम्बवत चुनें.
दाएं हाथ के फलक के गुण टैब पर, डेटा स्रोत खोलें और फिर अकाउंट का चयन करें.
(वैकल्पिक) लेआउट सूची में, विभिन्न विकल्पों का चयन करें.
इन्सर्ट टैब पर, इनपुट चुनें और फिर कॉम्बो बॉक्स चुनें. दो और कॉम्बो बॉक्स नियंत्रण जोड़ने के लिए चरण दोहराएं.
प्रत्येक कॉम्बो बॉक्स नियंत्रण के लिए, दाएं हाथ के फलक के गुण टैब पर, डेटा स्रोत खोलें और फिर अकाउंट का चयन करें. फ़ील्ड विकल्प के बगल में संपादित करें चुनें और फिर प्राइमरी टेक्स्ट और SearchField मानों का चयन करें. प्राइमरी विकल्प कॉलम होना चाहिए जिसे आप कॉम्बो बॉक्स में जोड़ना चाहते हैं। अन्य दो कॉम्बो बॉक्स नियंत्रण के लिए चरण दोहराएं.
अब गैलरी नियंत्रण का चयन करें और निम्नलिखित सूत्र में आइटम गुण सेट करें:
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 डेटा स्रोत का उपयोग करते हैं:
कई ऐप्स में, आप एक बड़े डेटा सेट में रिकॉर्ड की सूची को फ़िल्टर करने के लिए खोज बॉक्स में एक या अधिक वर्ण टाइप कर सकते हैं. जैसे-जैसे आप टाइप करते हैं, वैसे-वैसे सूची केवल वे रिकॉर्ड दिखाती है जो खोज मापदंडों से मेल खाते हैं.
इस लेख के बाकी हिस्सों में दिए गए उदाहरण ग्राहक नामक सूची में खोज के परिणाम दिखाते हैं, जिसमें यह डेटा शामिल है:
इस डेटा स्रोत को एक संग्रह के रूप में बनाने के लिए, एक बटन नियंत्रण बनाएँ और इसके OnSelect गुण को इस सूत्र पर सेट करें:
ClearCollect(ग्राहक, तालिका({ नाम: "फ्रेड गार्सिया", कंपनी: "नॉर्थविंड ट्रेडर्स" }, { नाम: "कोल मिलर", कंपनी: "कॉन्टोसो" }, { नाम: "ग्लेंडा जॉनसन", कंपनी: "कॉन्टोसो" }, { नाम: "माइक कोलिन्स", कंपनी: "एडवेंचर वर्क्स" }, { नाम: "कोलीन जोन्स", कंपनी: "एडवेंचर वर्क्स" }) )
जैसा कि इस उदाहरण में है, आप स्क्रीन के तल पर गैलरी नियंत्रण में रिकॉर्ड की एक सूची दिखा सकते हैं. स्क्रीन के शीर्ष के पास, आप एक पाठ इनपुट नियंत्रण जोड़ सकते हैं, नाम SearchInput हो, ताकि उपयोगकर्ता निर्दिष्ट कर सकें कि कौन सा रिकॉर्ड उनकी रुचि का है.
जैसे-जैसे उपयोगकर्ता SearchInput में वर्ण टाइप करता है, वैसे-वैसे गैलरी में परिणाम स्वचालित रूप से फ़िल्टर होते हैं. इस मामले में, गैलरी को वे रिकॉर्ड दिखाने के लिए कॉन्फ़िगर किया गया है, जिसके लिए ग्राहक का नाम (कंपनी का नाम नहीं) वर्णों SearchInput के अनुक्रम से प्रारंभ होता है. यदि उपयोगकर्ता खोज बॉक्स में co टाइप करता है, तो गैलरी निम्न परिणाम दिखाती है:
Name स्तंभ पर आधारित फ़िल्टर करने के लिए, गैलरी नियंत्रण का आइटम गुण निम्न सूत्रों में किसी एक पर सेट करें:
सूत्र | वर्णन | परिणाम |
---|---|---|
फ़िल्टर(ग्राहक, प्रारंभ(नाम, SearchInput.Text) ) | Customers डेटा स्रोत को उन रिकॉर्ड के लिए फ़िल्टर करता है, जिनमें खोज स्ट्रिंग Name स्तंभ की शुरूआत में दिखाई देती है. परीक्षण केस-असंवेदी होता है. यदि उपयोगकर्ता खोज बॉक्स में co टाइप करता है, तो गैलरी Colleen Jones और Cole Miller दर्शाता है. गैलरी Mike Collins नहीं दिखाती है क्योंकि इस रिकॉर्ड के लिए Name स्तंभ खोज स्ट्रिंग से शुरू नहीं होता. | |
फ़िल्टर(ग्राहक, नाम में SearchInput.Text) | Customers डेटा स्रोत को उन रिकॉर्ड के लिए फ़िल्टर करता है, जिनमें खोज स्ट्रिंग Name स्तंभ में कहीं भी दिखाई देती है. परीक्षण केस-असंवेदी होता है. यदि उपयोगकर्ता खोज बॉक्स में co टाइप करता है, तो गैलरी Colleen Jones, Cole Miller, और Mike Collins दिखाता है, क्योंकि खोज स्ट्रिंग इन सभी रिकॉर्ड के Name कॉलम में कहीं भी दिखाई देती है. | |
खोज(ग्राहक, SearchInput.Text, नाम) | in ऑपरेटर के उपयोग के समान ही, Search फ़ंक्शन प्रत्येक रिकॉर्ड के Name स्तंभ के भीतर मिलान के लिए खोज करता है. आपको कॉलम का नाम डबल कोटेशन के चिह्न में संलग्न करना होगा. |
आप कंपनी कॉलम और नाम कॉलम शामिल करने के लिए अपनी खोज का विस्तार कर सकते हैं:
सूत्र | विवरण | परिणाम |
---|---|---|
फ़िल्टर(ग्राहक, प्रारंभ(नाम, SearchInput.Text) से || प्रारंभ(कंपनी, SearchInput.Text) से ) | उन रिकॉर्ड के लिए Customers डेटा स्रोत को फ़िल्टर करता है, जिनमें Name स्तंभ या Company स्तंभ, खोज स्ट्रिंग (उदाहरण के लिए, co) से शुरू होता है. The || ऑपरेटर तब सही है, जब दोनों में कोई भी एक StartsWith फ़ंक्शन सही होता है. | |
फ़िल्टर(ग्राहक, नाम में SearchInput.Text || कंपनी में SearchInput.Text) | उन रिकॉर्ड के लिए Customers डेटा स्रोत को फ़िल्टर करता है, जिनमें Name स्तंभ या Company स्तंभ में, इनके भीतर कहीं भी खोज स्ट्रिंग (उदाहरण के लिए, co) शामिल है. | |
खोज(ग्राहक, SearchInput.Text, नाम, कंपनी) | in ऑपरेटर के उपयोग के समान ही, Search फ़ंक्शन उन रिकॉर्ड के लिए Customers डेटा स्रोत को फ़िल्टर करता है, जिनमें Name स्तंभ या Company स्तंभ में, इनके भीतर कहीं भी खोज स्ट्रिंग (उदाहरण के लिए, co) शामिल है. यदि आप एकाधिक स्तंभों और एकाधिक in ऑपरेटर निर्दिष्ट करना चाहते हैं, तो Search फ़ंक्शन Filter की तुलना में पढ़ने और लिखने आसान है. |