कोर्स
CALCULATE() फ़ंक्शन Power BI की सबसे महत्वपूर्ण (और सबसे लोकप्रिय) DAX फ़ंक्शनों में से एक है। यह उपयोग में आसान और बेहद बहुउद्देशीय है, जो आपको अपने डेटा विश्लेषण का विस्तार करने और और भी मूल्यवान Power BI रिपोर्ट विकसित करने में सक्षम बनाता है।
यह ट्यूटोरियल इस पर केंद्रित है कि CALCULATE() फ़ंक्शन क्या है और इसे कैसे उपयोग किया जाता है, और यह मानकर चलता है कि आप पहले से ही Power BI और DAX की बुनियादी जानकारी से परिचित हैं।
Power BI Calculate() फ़ंक्शन क्या है?
Microsoft Power BI प्रलेखन के अनुसार, CALCULATE() फ़ंक्शन फ़िल्टर फ़ंक्शन श्रेणी का हिस्सा है और इसे "संशोधित फ़िल्टर संदर्भ में किसी अभिव्यक्ति का मूल्यांकन करना" के रूप में परिभाषित किया गया है। अभिव्यक्ति मूलतः एक माप (measure) होती है और इसमें SUM(), AVERAGE(), और COUNT() जैसी फ़ंक्शंस शामिल हैं। इस अभिव्यक्ति का मूल्यांकन एक या अधिक फ़िल्टर्स के संदर्भ में किया जाता है।
जैसा कि आप जानते हैं, Power BI रिपोर्ट पर स्लाइसर जोड़कर बिना CALCULATE() फ़ंक्शन का उपयोग कर माप बनाए भी फ़िल्टर लगाए जा सकते हैं। हालांकि, कई स्थितियाँ होती हैं जहाँ CALCULATE() फ़ंक्शन अधिक उपयुक्त होता है। विशेष रूप से, इसे किसी अन्य फ़ंक्शन के घटक के रूप में उपयोग करना उपयोगी होता है। हम नीचे दिए गए उदाहरण में देखेंगे कि कुल का प्रतिशत निकालने के लिए यह कैसे काम करता है।
DAX Calculate() का बेसिक सिंटैक्स
CALCULATE() फ़ंक्शन का बुनियादी DAX सिंटैक्स इस प्रकार है:
CALCULATE( <expression> [, <filter1> [, <filter2> [, ...]]])
CALCULATE() फ़ंक्शन 2 प्रमुख घटकों से मिलकर बना है:
-
अभिव्यक्ति (expression) - यह एग्रीगेशन घटक है, जो
SUM(),AVERAGE(), औरCOUNT()जैसी फ़ंक्शंस का उपयोग करके एक माप की तरह ही बनाया जाता है। -
फ़िल्टर्स - यह घटक आपको एक या एकाधिक फ़िल्टर्स निर्दिष्ट करने देता है जो एग्रीगेशन के संदर्भ को नियंत्रित करते हैं।
CALCULATE() फ़ंक्शन में 3 प्रकार के फ़िल्टर्स इस्तेमाल किए जा सकते हैं:
-
बूलियन फ़िल्टर अभिव्यक्तियाँ - यह एक सरल फ़िल्टर है जहाँ परिणाम
TRUEयाFALSEहोना चाहिए। -
टेबल फ़िल्टर अभिव्यक्तियाँ - यह अधिक जटिल फ़िल्टर है जहाँ परिणाम एक टेबल होता है।
-
फ़िल्टर संशोधन फ़ंक्शंस -
ALLऔरKEEPFILTERSजैसे फ़िल्टर्स इस श्रेणी में आते हैं और वे लागू करने वाले फ़िल्टर संदर्भ पर अधिक नियंत्रण देते हैं।
आप CALCULATE() फ़ंक्शन के फ़िल्टर घटक में कई फ़िल्टर्स कॉमा से अलग करके जोड़ सकते हैं। सभी फ़िल्टर्स एक साथ मूल्यांकित होते हैं और उनका क्रम मायने नहीं रखता।
आप लॉजिकल ऑपरेटर्स का उपयोग करके इस बात को नियंत्रित कर सकते हैं कि फ़िल्टर्स कैसे मूल्यांकित हों। यदि आप चाहते हैं कि सभी शर्तें TRUE के रूप में मूल्यांकित हों, तो आप AND (&&) का उपयोग कर सकते हैं। यह ऊपर उल्लिखित अनुसार फ़िल्टर्स का डिफ़ॉल्ट व्यवहार भी है। वैकल्पिक रूप से, OR (||) ऑपरेटर के साथ, परिणाम लौटाने के लिए कम से कम एक शर्त का TRUE होना आवश्यक है।
Power BI Calculate() का उपयोग कैसे करें
CALCULATE() का उपयोग करने के लिए, बस अपनी टेबल में एक माप जोड़ें। आप रिबन में Modeling टैब पर जाकर और New measure चुनकर यह कर सकते हैं।

Power BI के Modeling टैब में New measure चुनना। चित्र: लेखक
नीचे SUM() का उपयोग करके कुल राजस्व खोजने और Country = United Kingdom के लिए फ़िल्टर करने वाला CALCULATE() फ़ंक्शन का एक सरल उदाहरण दिया गया है। हम इस उदाहरण पर ट्यूटोरियल के अंत में और विस्तार से चर्चा करेंगे।
UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
'Online Retail'[Country] = "United Kingdom")
जब इसे एक टेबल में देखा जाता है, तो हम देख सकते हैं कि UK Revenue माप बस Month के लिए टेबल में पहले से मौजूद फ़िल्टर संदर्भ के साथ-साथ Country के लिए एक फ़िल्टर लागू कर रहा है। इस तरीके से CALCULATE() फ़ंक्शन का उपयोग करने से हमें अपने विज़ुअल में किस प्रकार की जानकारी दिखाई दे, इस पर और सूक्ष्म नियंत्रण मिलता है।
Power BI में राजस्व तालिका। चित्र: लेखक
माप बनाते समय ध्यान रखने वाली एक महत्वपूर्ण बात यह है कि विशेष रूप से आपकी क्वेरी की गति और अनुकूलन के संदर्भ में अच्छी डेटा मॉडलिंग प्रथाओं का पालन करें। इसी कारण, CALCULATE() फ़ंक्शन के कुछ उपयोग अन्य की तुलना में तेज़ या अधिक उपयुक्त होते हैं।
उदाहरण के लिए, Microsoft प्रलेखन अनुशंसा करता है कि आप अन्य फ़ंक्शंस (जैसे CALCULATE() फ़ंक्शन) के आर्ग्युमेंट के रूप में FILTER() फ़ंक्शन का उपयोग करने से बचें। इसके बजाय, जहाँ संभव हो बूलियन अभिव्यक्तियों का उपयोग करना बेहतर है क्योंकि उन्हें विशेष रूप से इसी उद्देश्य के लिए ऑप्टिमाइज़ किया गया है।
ऊपर दिए गए उदाहरण में हमने अपने फ़िल्टर को परिभाषित करने के लिए Country = United Kingdom की बूलियन अभिव्यक्ति का उपयोग किया। यह एक तेज़ और अधिक अनुकूलित तरीका है। दूसरी ओर, यहाँ FILTER() फ़ंक्शन का एक उदाहरण है जहाँ हमें वही परिणाम मिलता है, लेकिन गणना धीमी है:
UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
FILTER('Online Retail',
'Online Retail'[Country] = "United Kingdom")
Power BI Calculate() फ़ंक्शन के उदाहरण
एक वास्तविक दुनिया के ई-कॉमर्स डेटा सेट का उपयोग करते हुए, हम कुछ प्रमुख तरीकों का पता लगाएंगे जिनसे CALCULATE() फ़ंक्शन का उपयोग व्यावसायिक समस्याओं को हल करने में किया जा सकता है। इस ट्यूटोरियल के साथ आगे बढ़ने के लिए, आप DataLab पर होस्ट किया गया ई-कॉमर्स डेटा सेट एक्सेस कर सकते हैं।
इस डेटा सेट में किसी ग्राहक द्वारा की गई प्रत्येक खरीद के बारे में जानकारी शामिल है: जिस देश से इसे खरीदा गया, उत्पाद का विवरण, खरीद की तारीख और समय, और खरीदे गए प्रत्येक उत्पाद की मात्रा और कीमत।
हम CALCULATE() फ़ंक्शन की मदद से निम्नलिखित प्रश्नों के उत्तर देंगे:
- UK में कुल मासिक राजस्व अन्य सभी देशों की तुलना में कैसा है?
- कुल राजस्व का कितना प्रतिशत UK से आता है?
- संचयी दैनिक राजस्व क्या है?
UK में कुल मासिक राजस्व अन्य सभी देशों की तुलना में कैसा है?
इस प्रश्न का उत्तर देने के लिए, हमें CALCULATE() फ़ंक्शन का उपयोग करके दो माप बनाने होंगे। पहले, हम एक सरल बूलियन फ़िल्टर का उपयोग करके UK में कुल राजस्व ( SUM() फ़ंक्शन का उपयोग करते हुए) लौटाने वाला माप बनाते हैं:
UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
'Online Retail'[Country] = "United Kingdom")
इसके बाद, हम एक समान माप बनाते हैं लेकिन इस बार हम FILTER() फ़ंक्शन का उपयोग करते हैं। यह फ़िल्टर अभिव्यक्ति Country कॉलम की प्रत्येक पंक्ति से गुजरती है और वे पंक्तियाँ लौटाती है जो फ़िल्टर शर्त से मेल खाती हैं। यहाँ FILTER() फ़ंक्शन आवश्यक है क्योंकि हम फ़िल्टर से एक साधारण TRUE या FALSE वापस नहीं कर सकते। इसके बजाय, हमें कई मानों वाली एक टेबल मिलती है।
Non-UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
FILTER('Online Retail',
'Online Retail'[Country] <>"United Kingdom")
इस प्रकार, हम देख सकते हैं कि अन्य सभी देशों की तुलना में यह ई-कॉमर्स स्टोर के राजस्व का अधिकांश हिस्सा UK से आता है।
मासिक राजस्व दिखाता Power BI लाइन ग्राफ। चित्र: लेखक.
कुल राजस्व का कितना प्रतिशत UK से है?
यह Power BI डेवलपर्स और उपयोगकर्ताओं द्वारा अक्सर पूछा जाने वाला प्रश्न है, और यह CALCULATE() फ़ंक्शन लागू करने का एक उत्कृष्ट मामला है।
किसी कुल का प्रतिशत खोजने के लिए, हमें पहले ऐसा कुल लौटाने में सक्षम होना चाहिए जो रिपोर्ट में अन्य फ़िल्टर संदर्भों से प्रभावित न हो। इसे प्राप्त करने के लिए, हम ALL() नामक फ़िल्टर मॉडिफायर का उपयोग करते हैं। इस फ़ंक्शन का उपयोग करके, हम यह निर्दिष्ट करते हैं कि किस कॉलम के लिए हमारी गणना किसी भी फ़िल्टर को पूरी तरह नज़रअंदाज़ करे।
इस उदाहरण में, हम UK में कुल राजस्व का प्रतिशत देख रहे हैं। इसका अर्थ है कि हमारी गणना को Country कॉलम में किसी भी फ़िल्टर को नज़रअंदाज़ करना चाहिए।
Total Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
ALL('Online Retail'[Country]))
यह प्रासंगिक है क्योंकि CALCULATE() किसी ऐसे फ़िल्टर संदर्भ के अंदर से भी निष्पादित हो सकता है जो पहले से Product[Color] को फ़िल्टर कर रहा है। उस स्थिति में, ALL की उपस्थिति का अर्थ है कि बाहरी Product[Color] पर लगा फ़िल्टर नज़रअंदाज़ कर दिया जाता है और उसे CALCULATE() द्वारा प्रस्तुत नए फ़िल्टर से बदल दिया जाता है। यह स्पष्ट है कि यदि हम मैट्रिक्स में Brand के बजाय Color के अनुसार स्लाइस करें।
अब जब हमें अपना कुल राजस्व पता है, तो हम कुल राजस्व का प्रतिशत दिखाने के लिए एक माप बना सकते हैं। हालाँकि, चूँकि हम विशेष रूप से UK में रुचि रखते हैं, हम CALCULATE फ़ंक्शन का फिर से उपयोग करेंगे, लेकिन इस बार एक सरल बूलियन फ़िल्टर के साथ।()
UK % of Revenue = CALCULATE(SUM('Online Retail'[Revenue])/[Total Revenue],
'Online Retail'[Country] = "United Kingdom")
अब हम देख सकते हैं कि इस ई-कॉमर्स स्टोर के कुल राजस्व का 84% UK से आता है।
Power BI में प्रतिशत की गणना। चित्र: लेखक
संचयी दैनिक राजस्व क्या है?
संचयी राजस्व राजस्व रुझानों पर कुछ अंतर्दृष्टि दे सकता है। इस संचयी राजस्व को एक चार्ट पर प्लॉट करके, हम दृश्य रूप से भी देख सकते हैं कि समय के साथ राजस्व तेज़ी से बढ़ा है या नहीं।
इस प्रश्न का उत्तर देने के लिए, हमें CALCULATE() फ़ंक्शन के साथ-साथ ये फ़िल्टर फ़ंक्शंस उपयोग करके एक माप बनाना होगा: ALLSELECTED(), FILTER(), और MAX() फ़ंक्शन का उपयोग करते हुए एक मूल्यांकन।
Cumulative Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
FILTER( ALLSELECTED('Online Retail'[InvoiceDate]),
'Online Retail'[InvoiceDate] <= MAX('Online Retail'[InvoiceDate])))
आइए देखें कि यहाँ ये फ़िल्टर्स क्यों महत्वपूर्ण हैं:
-
FILTER()फ़ंक्शन हमें निर्दिष्ट 2 फ़िल्टर्स में से प्रत्येक को पंक्ति-दर-पंक्ति आधार पर मूल्यांकित करने देता है और मेल होने के मामलों में एक टेबल लौटाता है। -
ALLSELECTED()फ़ंक्शन वर्तमान क्वेरी (नीचे दिए गए परिणाम में वर्तमान क्वेरी लाइन चार्ट है) में InvoiceDate पर लगे फ़िल्टर को रीसेट करता है, जबकि बाहरी फ़िल्टर्स (जैसे स्लाइसर से) की अनुमति देता है। -
MAX()फ़ंक्शन का उपयोग एक मूल्यांकन के हिस्से के रूप में किया जाता है—हम उन सभी तिथियों के राजस्व का योग करना चाहते हैं जो वर्तमान क्वेरी की तिथि पर या उससे पहले हैं।
Power BI में तिथि के अनुसार राजस्व की गणना। चित्र: लेखक.
समापन टिप्पणी
इस ट्यूटोरियल में, हमने Power BI में CALCULATE() फ़ंक्शन क्या है और इसका उपयोग कैसे करें, इस पर चर्चा की। हमने CALCULATE() फ़ंक्शन को एक वास्तविक ई-कॉमर्स डेटा सेट पर भी लागू किया और कुछ प्रमुख व्यावसायिक प्रश्नों के उत्तर देने में इसका उपयोग किया।
CALCULATE() Power BI की सबसे उपयोगी फ़ंक्शंस में से एक है और रिपोर्ट बनाते समय तथा अपने डेटा में गहरे इनसाइट्स उत्पन्न करते समय आपको इसका अक्सर उपयोग करना पड़ेगा।
आशा है, यह ट्यूटोरियल आपको न केवल CALCULATE() के बेसिक सिंटैक्स को समझने में मदद करता है, बल्कि यह भी दिखाता है कि एक Power BI डेटा विश्लेषक के रूप में वास्तविक व्यावसायिक समस्याएँ हल करने में इसका क्या संबंध है।