एक्सेल डैक्स - जटिल गणना करना

DAX सूत्र जटिल गणनाएँ कर सकते हैं जिनमें कस्टम एकत्रीकरण, फ़िल्टरिंग और सशर्त मूल्यों का उपयोग शामिल है। आप DAX के साथ निम्नलिखित कर सकते हैं -

  • PivotTable के लिए कस्टम गणना बनाएँ।
  • फ़िल्टर को DAX सूत्र पर लागू करें।
  • गतिशील अनुपात बनाने के लिए चुनिंदा रूप से फ़िल्टर निकालें।
  • बाहरी लूप से मान का उपयोग करें।

PivotTable के लिए कस्टम गणना बनाना

DAX फ़ंक्शन CALCULATE और CALCULATETABLE शक्तिशाली और लचीले हैं। वे गणना किए गए क्षेत्रों को परिभाषित करने के लिए उपयोगी हैं। ये DAX फ़ंक्शन आपको उस संदर्भ को बदलने में सक्षम करते हैं जिसमें गणना की जाएगी। आप प्रदर्शन करने के लिए एकत्रीकरण या गणितीय ऑपरेशन के प्रकार को भी अनुकूलित कर सकते हैं।

CALCULATE फ़ंक्शन

CALCULATE (<अभिव्यक्ति>, [<फ़िल्टर 1>], [<फ़िल्टर 2>] ...)

CALCULATE फ़ंक्शन किसी संदर्भ में दिए गए अभिव्यक्ति का मूल्यांकन करता है जिसे शून्य या अधिक निर्दिष्ट फ़िल्टर द्वारा संशोधित किया जाता है।

यदि आपका डेटा फ़िल्टर किया गया है, तो CALCULATE फ़ंक्शन उस संदर्भ को बदलता है जिसमें डेटा फ़िल्टर किया जाता है और नए संदर्भ में उस अभिव्यक्ति का मूल्यांकन करता है जिसे आप फ़िल्टर द्वारा निर्दिष्ट करते हैं। इसका मतलब है, निर्दिष्ट कॉलम पर मौजूद किसी भी मौजूदा फ़िल्टर को हटा दिया जाता है और फ़िल्टर तर्क में उपयोग किए गए फ़िल्टर को इसके बजाय लागू किया जाता है।

उदाहरण

मान लीजिए कि आप देश के नामों द्वारा फ़िल्टर किए गए पदक-वार के प्रतिशत को प्रदर्शित करना चाहते हैं। आपकी गणना देश में PivotTable में आपके द्वारा लागू किए गए फ़िल्टर को ओवरराइड करके प्रतिशत मान प्राप्त करना चाहिए।

  • एक परिकलित फ़ील्ड को परिभाषित करें - पदक गणना का प्रतिशत निम्न स्क्रीनशॉट में दिखाया गया है।

इस DAX सूत्र के साथ, परिणाम तालिका की सभी पंक्तियों को सभी फ़ंक्शन वाले फ़िल्टर के साथ CALCULATE फ़ंक्शन में ध्यान में रखा जाता है। इस तरह, आपके पास हर में कुल संख्या है।

आपका PivotTable निम्न स्क्रीनशॉट में दिखाया जाएगा।

उपरोक्त स्क्रीनशॉट में, देश को यूएसए में फ़िल्टर किया गया है और शीर्ष 18 मान PivotTable में प्रदर्शित किए गए हैं। इसके बाद, आप PivotTable में मानों को गतिशील रूप से फ़िल्टर कर सकते हैं। हालाँकि, गणना आपके द्वारा उपयोग किए जाने वाले कस्टम DAX सूत्र द्वारा सही होगी।

CALCULATETABLE फ़ंक्शन मानों की तालिका लेता है और CALCULATE फ़ंक्शन के समान कार्य करता है।

सूत्रों में डेटा फ़िल्टर करना

गणना में उपयोग के लिए स्रोत डेटा से मानों का चयन करने के लिए, आप DAX सूत्रों के भीतर फ़िल्टर बना सकते हैं। आप एक फ़िल्टर एक्सप्रेशन को परिभाषित करके और उस तालिका के साथ इसका उपयोग कर सकते हैं जो DAX सूत्र के लिए एक इनपुट है।

फ़िल्टर अभिव्यक्ति आपको स्रोत डेटा का सबसेट प्राप्त करने में सक्षम बनाती है। फ़िल्टर को हर बार गतिशील रूप से लागू किया जाता है जो आप अपने डेटा के वर्तमान संदर्भ के आधार पर DAX सूत्र के परिणामों को अपडेट करते हैं और आपको सटीक और अपेक्षित परिणामों का आश्वासन दिया जा सकता है।

फ़िल्टर एक्सप्रेशन में आमतौर पर एक DAX फ़िल्टर फ़ंक्शन होता है जो केवल तालिका की चयनित पंक्तियों को वापस करता है, जिसे तब एक और DAX फ़ंक्शन के लिए एक तर्क के रूप में उपयोग किया जा सकता है जिसे आप डेटा एकत्रीकरण के लिए उपयोग कर रहे हैं।

उदाहरण

निम्न स्क्रीनशॉट एक परिकलित फ़ील्ड की परिभाषा को दर्शाता है जो केवल ग्रीष्मकालीन खेलों के लिए पदक गणना देता है।

इस परिकलित फ़ील्ड के साथ, PivotTable निम्न स्क्रीनशॉट में दिखाया गया है।

जैसा कि आप देख सकते हैं, नई गणना फ़ील्ड के साथ दाईं ओर PivotTable में मान उन लोगों के साथ मेल खाते हैं जो सीज़न फ़ील्ड पर फ़िल्टर के साथ बाईं ओर PivotTable में हैं स्पष्ट रूप से लागू होते हैं।

Note - DAX फ़िल्टर और मान फ़ंक्शंस एक तालिका लौटाते हैं, लेकिन तालिका या पंक्तियों को सीधे डेटा मॉडल पर वापस नहीं लाते हैं और इसलिए हमेशा किसी अन्य DAX फ़ंक्शन में एम्बेडेड होते हैं।

इन DAX फ़ंक्शंस के विवरण के लिए, अध्याय - DAX फ़िल्टर फ़ंक्शंस देखें।

फ़िल्टर जोड़ना और हटाना गतिशील रूप से

DAX सूत्र जिनका आप PivotTable में उपयोग करते हैं, PivotTable संदर्भ से प्रभावित हो सकते हैं। हालाँकि, आप फ़िल्टर जोड़कर या हटाकर संदर्भ को चुनिंदा रूप से बदल सकते हैं। आप DAX फ़ंक्शंस का उपयोग कर सकते हैं ALL और ALLEXCEPT गतिशील रूप से PivotTable संदर्भ के बावजूद पंक्तियों का चयन करें।

इसके अतिरिक्त, आप अलग-अलग मान वापस करने के लिए DAX फ़ंक्शन DISTINCT और VALUES का उपयोग कर सकते हैं।

बाहरी लूप से मान का उपयोग करना

DAX EARLIER फ़ंक्शन के साथ संबंधित गणनाओं का एक सेट बनाने में आप पिछले लूप से एक मान का उपयोग कर सकते हैं। यह DAX फ़ंक्शन नेस्टेड लूप के दो स्तरों तक समर्थन करता है।