Power BI में DAX फ़ॉर्मूले कहाँ उपयोग होते हैं?
Power BI में आप तीन तरीकों से DAX फ़ॉर्मूले उपयोग कर सकते हैं:
- Calculated Tables - ये गणनाएँ किसी फ़ॉर्मूला के आधार पर रिपोर्ट में एक अतिरिक्त टेबल जोड़ेंगी।
- Calculated Columns - ये गणनाएँ किसी फ़ॉर्मूला के आधार पर एक टेबल में अतिरिक्त कॉलम जोड़ेंगी। ये कॉलम टेबल के किसी अन्य फ़ील्ड की तरह ही माने जाते हैं।
- Measures - ये गणनाएँ किसी फ़ॉर्मूला के आधार पर एक टेबल में संक्षेपित या समेकित माप जोड़ेंगी।
इन तीनों प्रकार की गणनाओं के बीच मुख्य अंतर उनका कॉन्टेक्स्ट (इस पर आगे विस्तार) और वे जो आउटपुट उत्पन्न करते हैं, यह है।
इनमें से किसी भी प्रकार की गणना को मॉडल में जोड़ने के लिए, रिबन के Modeling टैब पर जाएँ। यहाँ, आपको नया मेज़र, calculated column, या टेबल जोड़ने के तीन विकल्प मिलेंगे। वैकल्पिक रूप से, आप Fields पेन में किसी टेबल पर राइट-क्लिक करके ड्रॉप-डाउन मेनू में नया मेज़र या calculated column जोड़ने का विकल्प पा सकते हैं।

DAX फ़ॉर्मूला कैसे लिखें
DAX फ़ॉर्मूले सहज और पढ़ने में आसान होते हैं। इससे DAX की बुनियादी समझना सरल हो जाता है ताकि आप अपेक्षाकृत जल्दी अपने फ़ॉर्मूले लिखना शुरू कर सकें। आइए सही DAX सिंटैक्स के बिल्डिंग ब्लॉक्स पर नज़र डालें।

- मेज़र या calculated column का नाम
- बराबर-का ऑपरेटर ("=") फ़ॉर्मूले की शुरुआत दर्शाता है
- एक DAX फ़ंक्शन
- खुलने (और बंद होने) वाली कोष्ठकें ("()")
- कॉलम और/या टेबल रेफ़रेंसेज़
- ध्यान दें कि किसी फ़ंक्शन में हर अगला पैरामीटर अल्पविराम (",") से अलग होता है
DAX फ़ंक्शंस को कई ऑपरेशन्स कुशलतापूर्वक करने के लिए एक-दूसरे के अंदर नेस्ट भी किया जा सकता है। यह DAX फ़ॉर्मूले लिखते समय बहुत समय बचा सकता है। उदाहरण के लिए, अक्सर कई नेस्टेड IF स्टेटमेंट्स रखना उपयोगी होता है, या IFERROR फ़ंक्शन का उपयोग किसी अन्य फ़ंक्शन को रैप करने के लिए करना ताकि फ़ॉर्मूले में आने वाली किसी भी त्रुटि को आपके द्वारा निर्दिष्ट मान से दर्शाया जा सके।
रिपोर्टों में उपयोग होने वाले कुछ सबसे सामान्य DAX फ़ंक्शंस ये हैं:
- सरल गणनाएँ:
COUNT,DISTINCTCOUNT,SUM,AVERAGE,MIN,MAX। SUMMARISE: एक टेबल लौटाता है जिसका उपयोग आमतौर पर विभिन्न समूहों पर आगे समेकन लागू करने के लिए किया जाता है।CALCULATE: एक या अधिक फ़िल्टर्स के साथ समेकन करता है। जब आप एक से अधिक फ़िल्टर निर्दिष्ट करते हैं, तो फ़ंक्शन वहाँ गणना करेगा जहाँ सभी फ़िल्टर्स true हों।IF: किसी तार्किक शर्त के आधार पर, यदि शर्त true है तो एक मान और यदि false है तो दूसरा मान लौटाता है। यह SQL मेंCASE WHENऑपरेशन के समान है।IFERROR: किसी अंदरूनी फ़ंक्शन में त्रुटियों को ढूँढता है और निर्दिष्ट परिणाम लौटाता है।ISBLANK: यह फ़ंक्शन जाँचता है कि क्या किसी कॉलम की पंक्तियाँ रिक्त हैं और true या false लौटाता है। यह IF जैसे अन्य फ़ंक्शंस के साथ उपयोगी है।EOMONTH: दिए गए दिनांक (दिनांक प्रारूप में कॉलम रेफ़रेंस) के लिए माह के अंतिम दिन को, पिछले या भविष्य के जितने महीनों के लिए कहा गया हो, लौटाता है।DATEDIFF: दो तिथियों (दोनों दिनांक प्रारूप में कॉलम रेफ़रेंस) के बीच का अंतर दिनों, महीनों, तिमाहियों, वर्षों आदि में लौटाता है।
DAX फ़ॉर्मूलों में कॉन्टेक्स्ट को समझना
Power BI में DAX फ़ॉर्मूले गतिशील होते हैं और जिस कॉन्टेक्स्ट में वे बनाए गए हैं उसके अनुसार बदलते हैं। DAX में कॉन्टेक्स्ट कैसे काम करता है, इसे समझना महत्वपूर्ण है, क्योंकि जब आपकी फ़ॉर्मूलों में उलझन भरी त्रुटियाँ आती हैं तो यह आपको काफी सिरदर्द से बचा सकता है।
DAX में कॉन्टेक्स्ट के दो मुख्य प्रकार होते हैं: row context और filter context।
Row context
यह किसी टेबल की सभी कॉलमों में केवल “वर्तमान पंक्ति” को संदर्भित करता है और संबंधित टेबलों की सभी कॉलमों तक विस्तृत होता है। इस प्रकार का कॉन्टेक्स्ट DAX फ़ॉर्मूले को बताता है कि किसी विशेष फ़ॉर्मूले के लिए किन पंक्तियों का उपयोग करना है।
यहाँ row context वाला calculated column के लिए एक फ़ॉर्मूले का उदाहरण है:
Cost Price Per Unit = financials[COGS] / financials[Units Sold]

इस उदाहरण में, Cost Price Per Unit पंक्ति-दर-पंक्ति आधार पर गणना किया जाता है। इसका अर्थ है कि जैसे-जैसे DAX डेटासेट में आगे बढ़ता है, उसे वर्तमान पंक्ति का पता होना चाहिए, गणना करनी चाहिए, और परिणाम के साथ नए कॉलम को भरना चाहिए।
Calculated columns में row context निहित होता है। इसका कारण यह है कि calculated columns में की जाने वाली गणनाएँ पंक्ति-दर-पंक्ति आधार पर होती हैं; इसलिए row context डिफ़ॉल्ट रूप से परिभाषित होता है। हालांकि, measures में ऐसा नहीं होता क्योंकि समेकन टेबल की सभी पंक्तियों पर लागू होते हैं। इन गणनाओं को किसी वर्तमान पंक्ति की जानकारी की आवश्यकता नहीं होती क्योंकि सभी पंक्तियाँ साथ में समेकित होती हैं।
एक measure के उदाहरण के रूप में, निम्न DAX फ़ॉर्मूला देखें:
Profit margin = SUM ( financials[Profit] ) / SUM ( financials[Sales] )
इस स्थिति में, पूरी Profit कॉलम का जोड़ किया जाता है जिससे एक एकल संख्या प्राप्त होती है, और इसे पूरी Sales कॉलम के जोड़ से विभाजित किया जाता है। DAX को वर्तमान पंक्ति जानने की आवश्यकता नहीं होती क्योंकि यह समेकन करता है। इसलिए, इस measure में कोई row context नहीं है।
किसी measure में row context को स्पष्ट रूप से परिभाषित करने के लिए, आपको iterator नामक एक विशेष फ़ंक्शन का उपयोग करना होगा। Iterator फ़ंक्शंस के उदाहरण हैं SUMX, AVERAGEX, और COUNTX। ये फ़ंक्शंस पहले पंक्ति-दर-पंक्ति आधार पर गणना करते हैं और फिर परिणाम पर अंतिम समेकन (जैसे जोड़, औसत, गिनती आदि) करते हैं। इस प्रकार, इन iterators का उपयोग करके row context स्पष्ट रूप से परिभाषित होता है।
आइए एक iterator फ़ंक्शन का उदाहरण देखते हैं:
Average Cost Per Unit = AVERAGEX ( financials, financials[COGS] / financials[Units Sold] )
यह उदाहरण दो गणनाएँ करता है: पहले, अभिव्यक्ति पंक्ति-दर-पंक्ति आधार पर मूल्यांकित होती है, और फिर परिणाम पर AVERAGE फ़ंक्शन लागू होता है। उसी परिणाम तक पहुँचने का एक वैकल्पिक तरीका यह है कि पहले ऊपर की तरह calculated column Cost Price Per Unit बनाएँ और फिर उस कॉलम के लिए एक अलग AVERAGE measure बनाएँ। हालाँकि, यह जानना कि इन iterator फ़ंक्शंस का उपयोग कब करना है, आपकी रिपोर्ट को अधिक कुशल बना सकता है और कम मेमोरी का उपयोग कर सकता है, क्योंकि आप केवल एक फ़ॉर्मूले से प्रभावी रूप से दो गणनाएँ कर सकते हैं।
Filter context
Filter context row context के ऊपर लागू होता है और रिपोर्ट में फ़िल्टर्स के रूप में निर्दिष्ट पंक्तियों या कॉलमों के उपसमूह को संदर्भित करता है। फ़िल्टर्स कुछ तरीकों से लागू किए जा सकते हैं:
- सीधे किसी DAX फ़ॉर्मूले में
- Filters पेन का उपयोग करके
- Slicer विज़ुअल का उपयोग करके
- किसी विज़ुअल के फ़ील्ड्स के माध्यम से (जैसे मैट्रिक्स में rows और columns)
DAX फ़ॉर्मूले में filter context जोड़ने का एक अच्छा उदाहरण CALCULATE फ़ंक्शन का उपयोग है, जो आपको किसी measure में एक या अधिक फ़िल्टर पैरामीटर जोड़ने देता है। नीचे दिए गए उदाहरण में, हम केवल USA के लिए फ़िल्टर किया हुआ profit margin measure बनाते हैं:
USA Profit Margin = CALCULATE ( SUM ( financials[Profit] ) / SUM ( financials[Sales] ), financials[Country] = "United States of America")
DAX में सामान्य चुनौतियाँ और शुरुआती गलतियाँ
DAX सीखते समय, शुरुआती लोग अक्सर सामान्य गलतियों का सामना करते हैं जो फ़ॉर्मूलों को समझने और डिबग करने को और चुनौतीपूर्ण बना सकती हैं। यहाँ कुछ समस्याएँ और उन्हें संबोधित करने के सुझाव दिए गए हैं:
1. Row और filter contexts में भ्रम: कई शुरुआती लोग row और filter contexts में अंतर करने में संघर्ष करते हैं। याद रखें कि row context पंक्ति-दर-पंक्ति किए गए ऑपरेशन्स को संदर्भित करता है (जैसे calculated columns)। इसके विपरीत, filter context गणनाओं पर अतिरिक्त फ़िल्टर्स लागू करता है (जैसे किसी रिपोर्ट में स्लाइसर या फ़िल्टर्स)। सुझाव: Measures में row context को स्पष्ट रूप से परिभाषित करने के लिए SUMX या AVERAGEX जैसे iterator फ़ंक्शंस का उपयोग करें।
2. Calculated columns का अत्यधिक उपयोग: यद्यपि calculated columns उपयोगी हैं, उन्हें अक्सर measures से बदला जा सकता है, जो मेमोरी-कुशल और अधिक गतिशील होते हैं। अनावश्यक calculated columns बनाना आपके डेटा मॉडल को फुला सकता है। सुझाव: जहाँ संभव हो measures का उपयोग करें, क्योंकि वे ऑन-द-फ़्लाई गणना होते हैं और आपके डेटा मॉडल के आकार को स्थायी रूप से नहीं बढ़ाते।
3. उचित नामकरण मानकों की उपेक्षा: खराब तरीके से नामित measures या calculated columns जटिल रिपोर्टों में जल्दी ही भ्रमित कर सकते हैं। सुझाव: अपने DAX फ़ॉर्मूलों को व्यवस्थित रखने के लिए सुसंगत और वर्णनात्मक नामकरण मानक अपनाएँ।
4. प्रदर्शन अनुकूलन को नज़रअंदाज़ करना: यदि अनुकूलित नहीं किए गए तो बड़े डेटासेट्स के साथ DAX फ़ॉर्मूले धीमे हो सकते हैं। बहुत जटिल फ़ॉर्मूले या नेस्टेड फ़ंक्शंस का अत्यधिक उपयोग प्रदर्शन समस्याओं का कारण बन सकता है। सुझाव: अपनी फ़ॉर्मूलों का विश्लेषण और अनुकूलन करने के लिए DAX Studio जैसे टूल्स का उपयोग करें, और जहाँ संभव हो गणनाओं को सरल बनाने पर विचार करें।
DAX फ़ॉर्मूलों के अनुकूलन के लिए श्रेष्ठ अभ्यास
खासतौर पर बड़े डेटासेट्स में DAX फ़ॉर्मूलों के प्रदर्शन में सुधार करने के लिए, इन श्रेष्ठ अभ्यासों का पालन करें:
| श्रेष्ठ अभ्यास | विवरण |
|---|---|
| Calculated columns की जगह measures का उपयोग करें | Measures गतिशील होते हैं और मांग पर गणना होते हैं, जिससे वे calculated columns की तुलना में कम मेमोरी का उपभोग करते हैं। |
| Nested iterations से बचें | जटिल नेस्टेड फ़ंक्शंस (उदा., SUMX, AVERAGEX) के उपयोग को कम करें ताकि प्रदर्शन बाधाएँ न बनें। |
| जल्दी फ़िल्टर करें | प्रोसेस की जाने वाली पंक्तियों की संख्या कम करने के लिए डेटा स्रोत पर या DAX फ़ॉर्मूलों में ही फ़िल्टर लागू करें। |
| वेरिएबल्स का लाभ लें | किसी फ़ॉर्मूले के भीतर मध्यवर्ती परिणामों को संग्रहीत करने और अनावश्यक गणनाओं से बचने के लिए VAR का उपयोग करें। |
| रिलेशनशिप्स को सरल बनाएं | तेज़ प्रोसेसिंग के लिए डेटा मॉडल में स्पष्ट रिलेशनशिप्स और उपयुक्त रूप से इंडेक्स की गई टेबल्स सुनिश्चित करें। |
| कार्डिनैलिटी का अनुकूलन करें | प्रदर्शन बढ़ाने के लिए फ़िल्टरिंग या जॉइनिंग में उपयोग होने वाले कॉलमों में अद्वितीय मानों की संख्या कम करें। |
निष्कर्ष
अब आपके पास आज़माने के लिए कुछ बुनियादी DAX टूल्स हैं, और ये DAX की क्षमताओं की केवल शुरुआत हैं। 250 से अधिक फ़ंक्शंस के साथ, DAX में महारत हासिल करने की राह चुनौतीपूर्ण होने के साथ-साथ फलदायी भी है। आप आज ही हमारे Introduction to DAX in Power BI कोर्स से अपनी DAX कौशल को अगले स्तर पर ले जाना शुरू कर सकते हैं!
FAQs
Power BI में DAX क्या है?
DAX या Data Analysis Expressions, आपको ऐसी गणनाएँ करने देता है जिनसे आप अपने मॉडल में नए फ़ील्ड्स और यहाँ तक कि नई टेबल्स भी बना सकते हैं।
Power BI में DAX का पूर्ण रूप क्या है?
Data Analysis Expressions
Power BI में DAX फ़ॉर्मूला कैसे लिखें?
DAX फ़ॉर्मूले Power BI में रिबन के ठीक नीचे फ़ॉर्मूला बार में दर्ज किए जाते हैं। पहले फ़ॉर्मूले को कोई नाम दें और फिर बराबर-का संकेत ("=") लगाएँ। इसके बाद फ़ंक्शंस, कॉन्स्टेंट्स, या स्ट्रिंग्स का उपयोग करके अपना फ़ॉर्मूला लिखें।
Power BI में DAX measure कैसे लिखें?
रिबन के Modeling टैब से ‘New Measure’ चुनकर या Fields पेन में किसी टेबल पर राइट-क्लिक करके और ड्रॉप-डाउन से ‘New Measure’ चुनकर DAX measure बनाएँ।
Power BI में DAX का उपयोग करके ‘case when’ फ़ॉर्मूला कैसे बनाएँ?
DAX फ़ॉर्मूला में ‘case when’ फ़ॉर्मूला IF फ़ंक्शन का उपयोग करके बनाया जाता है।
Power BI में DAX का उपयोग करके दो टेबल्स को कैसे जोड़ा जाए?
दो टेबल्स को जोड़ने का सबसे आसान तरीका टेबल्स के बीच मौजूदा रिलेशनशिप्स का लाभ उठाना और ADDCOLUMNS फ़ंक्शन का उपयोग करके किसी टेबल में अतिरिक्त कॉलम जोड़ना है। यह फ़ंक्शन left join करता है।
Power BI में DAX का उपयोग करके where clause कैसे लागू करें?
DAX में where clause को फ़िल्टर पैरामीटर्स का उपयोग करके आसानी से लागू किया जा सकता है। उदाहरण के लिए, CALCULATE फ़ंक्शन एक अभिव्यक्ति लेता है और कई वैकल्पिक फ़िल्टर पैरामीटर्स स्वीकार करता है। यह नियंत्रित करने में मदद करता है कि चार्ट्स और उपयोगकर्ता इनपुट इन फ़ंक्शंस को कैसे प्रभावित करते हैं।
Power BI में DATATABLE DAX फ़ंक्शन का उपयोग करके स्थिर टेबल्स कैसे बनाएँ?
DATATABLE फ़ंक्शन ऐसी स्थिर टेबल्स बनाने का आसान और सुविधाजनक तरीका है जो तब तक रिफ्रेश नहीं होतीं जब तक DAX फ़ंक्शन को स्पष्ट रूप से बदला न जाए। DATATABLE का सिंटैक्स है:
DATATABLE (
<column1_name>, <column1_datatype>,
<column2_name>, <column2_datatype>,
{
{ <value1_row1>, <value2_row1> },
{ <value1_row2>, <value2_row2> }
}
)
Power BI में DAX का उपयोग करके मानों को कैसे बदलें?
DAX का उपयोग करके किसी कॉलम में स्ट्रिंग मानों को बदलने के दो तरीके हैं—REPLACE और SUBSTITUTE फ़ंक्शंस। REPLACE फ़ंक्शन आपकी निर्दिष्ट सटीक पोज़िशन और अक्षरों की संख्या के आधार पर स्ट्रिंग को बदलता है। दूसरी ओर, SUBSTITUTE फ़ंक्शन किसी भी सटीक मिलान वाली स्ट्रिंग को, उसकी पोज़िशन की परवाह किए बिना, बदल देता है।
मैं Power BI में DAX का उपयोग करना कैसे सीखूँ?
DataCamp का Introduction to DAX in Power BI कोर्स शुरुआती से उन्नत तक की DAX गणनाओं की एक विस्तृत श्रृंखला सिखाता है और यह भी कि उन्हें अपनी रिपोर्ट्स में सर्वोत्तम तरीके से कैसे उपयोग करें।

DAX क्या है?
DAX या Data Analysis Expressions वे सभी गणनाएँ संचालित करता है जिन्हें आप Power BI में कर सकते हैं। DAX फ़ॉर्मूलों में बहुमुखी प्रतिभा, गतिशीलता और शक्तिशाली क्षमता होती है—ये आपको अपने मॉडल में नए फ़ील्ड्स और टेबल्स बनाने की अनुमति देते हैं। DAX एक फ़ॉर्मूला भाषा है जिसका उपयोग Power BI, Power Pivot, और SSAS Tabular मॉडलों में किया जाता है।
DAX फ़ॉर्मूले 3 मुख्य घटकों से मिलकर बनते हैं, और इस ट्यूटोरियल में हम प्रत्येक को कवर करेंगे:
Power BI में DAX क्यों महत्वपूर्ण है?
DAX फ़ॉर्मूले आपको अपने डेटा और Power BI का अधिकतम लाभ उठाने में सक्षम बनाते हैं ताकि आप व्यावसायिक समस्याओं को कुशलतापूर्वक हल कर सकें।
आप सरल गणनाएँ (जैसे साधारण जोड़ या औसत) कर सकते हैं और अधिकांश विज़ुअल बिना DAX छुए बना सकते हैं। उदाहरण के लिए, यदि आप कुल लाभ दिखाने वाला एक सरल चार्ट बनाना चाहते हैं, तो आप लाभ फ़ील्ड को चार्ट के Values सेक्शन में खींच सकते हैं, और यह उस फ़ील्ड की पंक्तियों का जोड़ कर देगा। हालांकि, दो स्थितियाँ हैं जहाँ DAX फ़ॉर्मूला बनाना बेहतर होगा:
SUMयाAVERAGEजैसी सरल गणना उस व्यावसायिक समस्या के लिए पर्याप्त न हो जिसे आप हल करना चाहते हैं।