यदि आपने DAX के साथ काम करने में थोड़ा भी समय बिताया है, तो आप जानते हैं कि तिथियाँ जल्दी ही पेचीदा हो सकती हैं। सब ठीक रहता है, जब तक कोई यह न कह दे, “हमारी रिपोर्टिंग वीक शनिवार से शुरू होती है,” या “क्या हम डैशबोर्ड में वीकेंड को अलग तरह से हाइलाइट कर सकते हैं?” फिर अचानक आप WEEKDAY() के रिटर्न टाइप, ऑफ़सेट लॉजिक में उलझ जाते हैं और समझाने लगते हैं कि जब आपका व्यवसाय कुछ और कहता है तो Power BI शुक्रवार को हफ्ते का अंत क्यों मानता है।
हममें से अधिकतर ने यह समस्या देखी है: आपको वीकेंड फ़्लैग करना है, वर्किंग डेज़ की गणना करनी है, या ऐसी कस्टम वीक बाउंड्री परिभाषित करनी है जो मानक कैलेंडर से मेल नहीं खाती। हो सकता है आपका वेयरहाउस रविवार से गुरुवार चलता हो, या आपकी फ़ाइनेंस टीम वीकेंड को छोड़कर वर्किंग डेज़ गिनना चाहती हो।
डिफ़ॉल्ट रूप से, DAX इसे पूरी तरह नहीं संभालता, लेकिन आपको इसे ठीक करने के लिए बिल्डिंग ब्लॉक्स देता है। इस लेख में, हम देखेंगे कि WEEKDAY() का उपयोग करके वीकेंड कैसे फ़्लैग करें, वीक बाउंड्री (जैसे शनिवार–शुक्रवार) कैसे परिभाषित करें, NETWORKDAYS() या कंडिशनल लॉजिक से वर्किंग डेज़ कैसे गिनें, और इन कैलकुलेशन का उपयोग करके ऐसे मेट्रिक्स कैसे बनाएँ जो Power BI में सचमुच मायने रखें।
DAX में वीकेंड को समझना
बुनियादी बातों से शुरू करते हैं—अपने डेटासेट में कौन-से दिन वीकेंड हैं, यह जानना। DAX इसके लिए WEEKDAY() फ़ंक्शन देता है, और एक बार जब आप नंबरिंग सिस्टम समझ लेते हैं, तो यह हैरान करने लायक लचीला होता है। डिफ़ॉल्ट रूप से, WEEKDAY() 1 से 7 तक एक संख्या देता है जो दी गई तिथि के सप्ताह के दिन का प्रतिनिधित्व करती है। दूसरा आर्ग्युमेंट इन संख्याओं के मैपिंग को नियंत्रित करता है। जो संस्करण ज़्यादातर डेवलपर उपयोग करते हैं वह है WEEKDAY(date, 2), जो सोमवार के लिए 1 और रविवार के लिए 7 लौटाता है, जो अधिकांश बिज़नेस कैलेंडरों द्वारा उपयोग किए जाने वाले ISO मानक से मेल खाता है।
यहाँ एक त्वरित उदाहरण है:
तिथि
WEEKDAY(Date, 2)
दिन
2025-10-13
1
Monday
2025-10-14
2
Tuesday
2025-10-18
6
Saturday
2025-10-19
7
Sunday
अब इसे उपयोगी बनाते हैं। आप अपनी Date टेबल में एक calculated column जोड़ सकते हैं जो वीकेंड को फ़्लैग करे:
IsWeekend =
VAR DayNum = WEEKDAY('Date'[Date], 2)
RETURN IF(DayNum > 5, TRUE(), FALSE())संचालित द्वारा
यहाँ क्या हो रहा है:
WEEKDAY('Date'[Date], 2) आपको दिन की संख्या देता है (1 = Monday, …, 7 = Sunday)।
DayNum > 5 Saturday (6) और Sunday (7) की पहचान करता है।
कॉलम वीकेंड के लिए TRUE और वीकडे के लिए FALSE लौटाता है।
यदि आपका सप्ताह मानक सोमवार–शुक्रवार पैटर्न का पालन नहीं करता—उदाहरण के लिए, आपका व्यवसाय शुक्रवार और शनिवार को वीकेंड मानता है—तो आप लॉजिक को आसानी से समायोजित कर सकते हैं:
IsWeekend_Custom =
VAR DayNum = WEEKDAY('Date'[Date], 2)
RETURN IF(DayNum IN {5, 6}, TRUE(), FALSE())संचालित द्वारा
यह एक-पंक्ति का बदलाव आपके मॉडल को कस्टम ऑपरेटिंग कैलेंडरों के लिए काम करने लायक बना देता है। यह कॉलम बनाने के बाद, Power BI में Date फ़ील्ड के साथ इसे एक साधारण टेबल विज़ुअल में डालें और जाँचें कि आपके वीकेंड दिन ठीक से लाइन अप हो रहे हैं या नहीं।
कस्टम वीक बाउंड्री कैसे बनाएँ
ज़्यादातर Power BI मॉडल सोमवार–रविवार कैलेंडर मान लेते हैं, लेकिन वास्तविक दुनिया की रिपोर्टिंग अक्सर इतनी सधे हुए तरीके से नहीं चलती। उदाहरण के लिए, रिटेल डैशबोर्ड अक्सर शुक्रवार को क्लोज़ होते हैं; कुछ संगठन इसके बजाय शनिवार–शुक्रवार चक्र ट्रैक करते हैं। DAX में, आप अपने बिज़नेस कैलेंडर से मेल खाने वाली कस्टम वीक बाउंड्री बना सकते हैं। आइए इसे साफ़-सुथरे तरीके से, चरण-दर-चरण समझें।
शुक्रवार पर समाप्त होने वाला सप्ताह सेट करना
यदि आपका व्यवसायिक सप्ताह शुक्रवार को समाप्त होता है, तो आप प्रत्येक तिथि को उसके अनुरूप वीकएंड तिथि असाइन कर सकते हैं। लॉजिक सरल है: प्रत्येक तिथि लें, उसका वीकडे नंबर पता करें, और उसे आगे ऑफ़सेट करें जब तक वह शुक्रवार न आ जाए।
WEEKDAY('Date'[Date], 2) आपको वीकडे इंडेक्स देता है (Monday = 1)।
आप गणना करते हैं कि वह तिथि शुक्रवार से कितनी दूर है।
यदि दिन शुक्रवार से आगे निकल चुका है (जैसे, शनिवार या रविवार), तो यह 7 दिन जोड़कर अगले शुक्रवार पर रोल ओवर करता है।
यह तरीका शनिवार से शुक्रवार तक की सभी तिथियों को एक ही सप्ताह (जो शुक्रवार को समाप्त होता है) के अंतर्गत समूहित करता है।
इसे जाँचने के लिए:
इस कॉलम को अपनी Date टेबल में जोड़ें।
Power BI में Date और WeekEnd_Friday के साथ एक टेबल विज़ुअल बनाएं।
आप देखेंगे कि हर शनिवार–शुक्रवार अनुक्रम एक ही वीकएंड तिथि पर मैप होता है।
शनिवार से शुरू होने वाला सप्ताह सेट करना
यदि आपकी रिपोर्टिंग वीक शनिवार से शुरू होती है, तो आप पिछले फ़ॉर्मूले के साथ एक वीक स्टार्ट कॉलम जोड़ सकते हैं। यही लॉजिक उलटा लागू करें—हर तिथि के सापेक्ष सबसे नज़दीकी पिछला शनिवार खोजें।
यह पिछली अभिव्यक्ति की ही तरह काम करता है, बस पिछड़े की ओर शिफ्ट होकर पिछले शनिवार तक जाता है।
आप पुराने कोड सैंपल भी देख सकते हैं जो calculated column के अंदर करंट रो कॉन्टेक्स्ट कैप्चर करने के लिए EARLIER() फ़ंक्शन का उपयोग करते हैं। जैसे:
WeekStart_Saturday =
VAR CurrentDate = EARLIER('Date'[Date])
VAR WeekdayIndex = WEEKDAY(CurrentDate, 2)
VAR DaysSinceSaturday = WeekdayIndex - 6
RETURN
CurrentDate - IF(DaysSinceSaturday < 0, DaysSinceSaturday + 7, DaysSinceSaturday)संचालित द्वारा
आधुनिक DAX में इस परिदृश्य में EARLIER() की आवश्यकता नहीं होती, क्योंकि calculated columns पहले से ही रो-बाय-रो इवैल्यूएट होती हैं, लेकिन फिर भी इसे समझना लेगेसी मॉडल्स या इटरेटर्स में रो कॉन्टेक्स्ट नेस्ट करने के समय सहायक है।
एक बार जब आप दोनों कॉलम जोड़ लें, तो अपनी Date कॉलम के साथ टेबल विज़ुअल में WeekStart_Saturday और WeekEnd_Friday प्लॉट करके देखें। आपको स्पष्ट वीक बाउंड्री नज़र आएँगी जो आपके व्यवसाय की रफ़्तार का अनुसरण करती हैं, न कि डिफ़ॉल्ट कैलेंडर का।
अगले चरण में, आप इन वीक स्टार्ट और एंड डेट्स को विज़ुअल्स में ग्रुपिंग कीज़ की तरह या मेज़र्स में एंकर की तरह उपयोग कर सकते हैं—बिज़नेस वीक के हिसाब से टोटल्स निकालने, वीक-ओवर-वीक तुलना करने, या नॉन-स्टैंडर्ड फ़िस्कल कैलेंडरों से संरेखित करने के लिए यह आदर्श है।
कॉलम और मेज़र में से कैसे चुनें
अब जब आपने अपनी कस्टम वीक बाउंड्री सेट कर ली हैं, तो यह तय करना उपयोगी है कि उन्हें अपने मॉडल में कैसे उपयोग करना है—calculated columns के रूप में या measures के रूप में। दोनों की अपनी जगह है, और कब किसका उपयोग करना है यह जानने से आपका Power BI मॉडल कुशल और पूर्वानुमेय रहता है।
calculated columns को स्थिर गुण समझें जिनसे आप स्लाइस या फ़िल्टर करना चाहते हैं। उदाहरण के लिए, आपके IsWeekend, WeekStart_Saturday, या WeekEnd_Friday कॉलम हर तिथि का वर्णन करते हैं। वे यूज़र इंटरेक्शन या फ़िल्टर पर निर्भर नहीं होते; वे बस बताते हैं कि हर दिन क्या है। इसलिए वे विज़ुअल्स को समूहित करने, रिलेशनशिप सेट करने या हायरार्की बनाने के लिए परफेक्ट हैं।
इसके विपरीत, measures डायनामिक कैलकुलेशन हैं जो फ़िल्टर्स, स्लाइसर और कॉन्टेक्स्ट के अनुसार प्रतिक्रिया देते हैं। यदि आप मेट्रिक्स का सारांश या तुलना कर रहे हैं—जैसे, चुनी गई रेंज में वर्किंग डेज़ की गिनती या प्रति सप्ताह औसत बिक्री—तो आपको measure चाहिए।
TotalSalesByWeek = SUM(Sales[Amount]) जिसे WeekStart_Saturday द्वारा grouped किया गया है
संक्षेप में:
यदि आपको परिणाम प्रत्येक रो के साथ स्टोर चाहिए (और स्लाइसर या फ़िल्टर में उपयोग करने योग्य), तो कॉलम चुनें।
यदि आपको ऐसा कैल्कुलेशन चाहिए जो यूज़र इंटरेक्शन के साथ अपडेट हो, तो measure चुनें।
NETWORKDAYS() के साथ वर्किंग डेज़ की गणना
एक बार जब आपके वीकेंड और वीक बाउंड्री परिभाषित हो जाएँ, अगला तार्किक कदम है वर्किंग डेज़ की गणना—दो तिथियों के बीच के वीकडेज़ की संख्या, वैकल्पिक रूप से छुट्टियाँ छोड़कर। Power BI और DAX इसे NETWORKDAYS() फ़ंक्शन के साथ सरल बना देते हैं, जो DAX के हालिया संस्करणों में पेश हुआ है।
सबसे सरल रूप में, इसका सिंटैक्स इस तरह दिखता है:
NETWORKDAYS(<start_date>, <end_date>[, <weekend>[, <holidays>]])संचालित द्वारा
यहाँ हर पैरामीटर कैसे काम करता है:
<start_date> और <end_date> आपकी रेंज परिभाषित करते हैं।
<weekend> वैकल्पिक है और आपको यह निर्दिष्ट करने देता है कि कौन-से दिन वीकेंड माने जाएँ।
<holidays> भी वैकल्पिक है — आप छुट्टियों की तारीखों का कोई कॉलम या टेबल पास कर सकते हैं ताकि वे गणना से बाहर हो जाएँ।
वीकेंड कोड समझना
<weekend> आर्ग्युमेंट न्यूमेरिक कोड्स का उपयोग करता है यह परिभाषित करने के लिए कि कौन-से दिन वीकेंड माने जाएँ। यहाँ कुछ मानक विकल्प हैं जिन्हें आप संभवतः उपयोग करेंगे:
कोड
वीकेंड दिन
विवरण
1
Saturday, Sunday
डिफ़ॉल्ट (पश्चिमी कार्यसप्ताह)
7
Friday, Saturday
मध्य-पूर्वी कैलेंडरों में आम
11
Sunday only
केवल रविवार बंद के लिए
12
Monday only
केवल सोमवार नॉन-वर्किंग डेज़ के लिए
उदाहरण के लिए, यदि आपका कार्यसप्ताह रविवार से गुरुवार चलता है, तो आप शुक्रवार–शनिवार वीकेंड के लिए कोड 7 का इस्तेमाल करेंगे।
यहाँ मॉडल में दो कॉलम के बीच वर्किंग डेज़ कैसे गिनें:
WorkingDays_Default =
NETWORKDAYS('Sales'[StartDate], 'Sales'[EndDate])संचालित द्वारा
यह फ़ॉर्मूला मानता है कि शनिवार और रविवार वीकेंड हैं। यदि आपका व्यवसाय शुक्रवार–शनिवार वीकेंड मानता है, तो इसे इस तरह समायोजित करें:
WorkingDays_FriSat =
NETWORKDAYS('Sales'[StartDate], 'Sales'[EndDate], 7)संचालित द्वारा
छुट्टियाँ निकालना
आप इसे एक कदम और आगे बढ़ा सकते हैं, एक समर्पित Holiday टेबल में संग्रहीत आधिकारिक छुट्टियों को निकालकर। मान लें कि आपके पास Holiday[Date] कॉलम वाली टेबल है। इसे इस तरह शामिल करें:
WorkingDays_WithHolidays =
NETWORKDAYS(
'Sales'[StartDate],
'Sales'[EndDate],
1,
'Holiday'[Date]
)संचालित द्वारा
यह सेटअप सुनिश्चित करता है कि वीकेंड और आपके संगठन द्वारा परिभाषित छुट्टियाँ काउंट से बाहर रहें। यह एक छोटा-सा ऐडिशन है जो आपकी रिपोर्ट्स को कहीं ज़्यादा सटीक बनाता है, खासकर वर्कफ़ोर्स प्लानिंग, SLA मॉनिटरिंग, या ऑपरेशनल डैशबोर्ड्स के लिए।
उदाहरण उपयोग परिदृश्य
मान लें आपकी कंपनी Power BI में प्रोजेक्ट टाइमलाइन ट्रैक करती है। हर रिकॉर्ड में StartDate और EndDate है। WorkingDays_WithHolidays measure जोड़कर, आप जल्दी से देख सकते हैं:
हर प्रोजेक्ट में कितने वर्किंग डेज़ लगे?
कौन-से प्रोजेक्ट्स वीकेंड या सार्वजनिक छुट्टियों से गुज़रे?
विभाग या प्रोजेक्ट प्रकार के अनुसार औसत वर्किंग ड्यूरेशन।
इसे एक्शन में देखने के लिए, इस measure को Project Name, StartDate, और EndDate के साथ टेबल विज़ुअल में डालें। आपको तुरंत ऐसी टाइमलाइन तस्वीर मिलेगी जो केवल तिथियों के अंतर नहीं, बल्कि वास्तविक वर्किंग डेज़ पर आधारित होगी।
बिज़नेस डैशबोर्ड्स में व्यावहारिक अनुप्रयोग
अब जब आपके पास वर्किंग डेज़, वीकेंड फ़्लैग और कस्टम वीक बाउंड्री मौजूद हैं, तो देखें ये वास्तविक दुनिया के Power BI डैशबोर्ड्स में कैसे फिट होते हैं। वीकेंड या फ़िस्कल वीक को फिर से परिभाषित करने की क्षमता केवल एक तकनीकी ट्रिक नहीं है; यह सीधे-सीधे प्रभावित करती है कि मेट्रिक्स कैसे कैलकुलेट, विज़ुअलाइज़ और विभागों में समझे जाते हैं।
पेरोल और टाइमशीट कटऑफ़
कई संगठन तय शनिवार–शुक्रवार या रविवार–शनिवार चक्र पर पेरोल प्रोसेस करते हैं। DAX में वीक बाउंड्री परिभाषित करके, आप सैलरी पीरियड्स, ओवरटाइम कैलकुलेशन और टाइमशीट एंट्रीज़ को उसी वर्किंग वीक के साथ संरेखित कर सकते हैं जिसे आपका HR सिस्टम उपयोग करता है। उदाहरण के लिए, आप कस्टम सप्ताह के हिसाब से कुल कार्य घंटे या पूरे किए गए शिफ्ट्स की गणना कर सकते हैं, जिससे पेरोल रिपोर्ट्स डिफ़ॉल्ट सोमवार–रविवार कैलेंडर के बजाय आंतरिक शेड्यूल्स से बिल्कुल मेल खाएँ।
ऑपरेशनल KPI और सर्विस मॉनिटरिंग
ऑपरेशंस और लॉजिस्टिक्स टीमें अक्सर डिलीवरी टर्नअराउंड टाइम या इन्सिडेंट रेज़ॉल्यूशन जैसे KPI केवल वर्किंग डेज़ के आधार पर मापती हैं। NETWORKDAYS() का उपयोग यह सुनिश्चित करता है कि ये मेट्रिक्स वास्तविक बिज़नेस क्षमता को दर्शाएँ, न कि उन वीकेंड्स को जब कुछ नहीं चलता।
अपने वर्किंग डे कैलकुलेशन को WeekStart_Saturday या WeekEnd_Friday कॉलम्स के साथ पेयर करने से आप डेटा को उसी ऑपरेशनल वीक के अनुसार ग्रुप कर सकते हैं जिसे प्रबंधन मीटिंग्स और रिपोर्ट्स में ट्रैक करता है।
रिटेल और बिक्री प्रदर्शन
रिटेलर शायद ही कैलेंडर वीक का पालन करते हैं। कई लोग शनिवार से शुक्रवार को तरजीह देते हैं ताकि पूरा वीकेंड सेल्स पीरियड एक ही सुसंगत रिपोर्टिंग ब्लॉक में आ जाए। अपनी डेट टेबल को उसी शेड्यूल के अनुसार मॉडल करने से वीकेंड सेल्स ट्रेंड्स एक ही सप्ताह के भीतर रहते हैं, जिससे वीकेंड्स के बीच तुलना अर्थपूर्ण बनती है। यह छोटा-सा समायोजन “वीक-ओवर-वीक” विज़ुअल्स के विकृत होने से बचाता है और अधिक सटीक रोलिंग एवरेज देता है।
कस्टम फ़िस्कल वीक और फ़ोरकास्टिंग
कुछ फ़ाइनेंस टीमें ऐसे फ़िस्कल वीक पर काम करती हैं जो हफ्ते के मध्य से शुरू होते हैं या 4-4-5 अकाउंटिंग पैटर्न का अनुसरण करते हैं। आपकी कस्टम वीक बाउंड्री इसमें आसानी से प्लग हो सकती हैं।एक बार जब आपकी डेट टेबल में WeekStart और WeekEnd कॉलम शामिल हो जाएँ, तो रेवेन्यू रिकग्निशन, खर्च ट्रैकिंग, या फ़ोरकास्टिंग जैसे measures को निरंतर रूप से एग्रीगेट किया जा सकता है, चाहे आपका फ़िस्कल कैलेंडर कितना भी असामान्य क्यों न हो।
वर्किंग डेज़ पर आधारित रोलिंग एवरेज
मूविंग एवरेज निकालते समय, खासकर दैनिक बिक्री या प्रोडक्शन दर जैसे KPI के लिए, कैलेंडर डेज़ के बजाय वर्किंग डेज़ पर आधारित गणना बेहतर होती है।
उदाहरण के लिए, यदि आपके IsWeekend फ़्लैग का उपयोग करके वीकेंड को बाहर रखा गया है, तो 7-दिन का रोलिंग एवरेज सचमुच एक बिज़नेस वीक की गतिविधि को दर्शाएगा—न कि नॉन-वर्किंग डेज़ पर आए फुलाए या भ्रामक डिप्स को।
संक्षेप में, कस्टम वीक परिभाषाएँ और वर्किंग-डे लॉजिक आपके Power BI डैशबोर्ड्स को इस बात के और करीब लाते हैं कि आपका व्यवसाय वास्तव में कैसे संचालित होता है। चाहे आप पेरोल कटऑफ़, शिपिंग लीड टाइम्स, या वीकेंड सेल्स पीक ट्रैक कर रहे हों, ये DAX पैटर्न आपकी इनसाइट्स को और साफ़, निष्पक्ष और अधिक क्रियाशील बनाते हैं।
याद रखने योग्य मुख्य बिंदु
समापन से पहले, मुख्य बातें समेट लें ताकि आप इन्हें अपने Power BI प्रोजेक्ट्स में प्रभावी ढंग से लागू कर सकें।
रो-वाइज़ वर्गीकरण के लिए calculated columns का उपयोग करें: जब आपको हर तिथि को लेबल करना हो—जैसे वीकेंड मार्क करना, वीक बाउंड्री असाइन करना, या बिज़नेस डेज़ कैटेगराइज़ करना—calculated columns सबसे बेहतर हैं। वे स्थिर गुण प्रदान करते हैं जो आपके मॉडल में स्लाइसर्स, फ़िल्टर्स और रिलेशनशिप्स में सहजता से काम करते हैं।
सही रिटर्न टाइप के साथ WEEKDAY() का सावधानी से उपयोग करें: ध्यान रखें कि WEEKDAY(date, 2) में काउंट सोमवार (1) से शुरू होता है और रविवार (7) पर समाप्त। इस पैरामीटर को समायोजित करके आप अपने कैलकुलेशन को क्षेत्रीय या संगठनात्मक कार्यसप्ताह मानकों से संरेखित कर सकते हैं। अपना रिटर्न टाइप हमेशा दोबारा जाँचें—DAX टाइम लॉजिक में ऑफ-बाय-वन त्रुटियों के यह सबसे आम कारणों में से एक है।
NETWORKDAYS() वीकेंड और छुट्टियाँ निकालने के लिए आपका मुख्य साधन है: यह फ़ंक्शन वर्किंग-डे कैलकुलेशन को सरल बनाता है, आपको जटिल डेट फ़िल्टर्स या मैनुअल लूप से बचाता है। सटीक काउंट पाने के लिए इसे अपनी कंपनी के वीकेंड कोड और हॉलिडे टेबल के साथ मिलाएँ, ताकि केवल कैलेंडर गैप नहीं बल्कि असली बिज़नेस डेज़ परिलक्षित हों।
इन मूल बातों—कस्टम वीक स्ट्रक्चर, सोच-समझकर किया गया वीकडे लॉजिक, और सटीक वर्किंग-डे काउंट—में महारत हासिल करके, आप हर Power BI डैशबोर्ड में अधिक शुद्धता और लचीलापन लाएँगे। अगली बार जब आप डेट मॉडल सेट कर रहे हों या रिपोर्ट्स को बिज़नेस कैलेंडरों से संरेखित कर रहे हों, ये DAX पैटर्न आपकी टूलकिट के शीर्ष पर होने चाहिए
आम गलतियों से बचें
यहाँ तक कि अनुभवी Power BI डेवलपर्स भी DAX में डेट और वीक लॉजिक पर काम करते समय सूक्ष्म दिक्कतों में फँस सकते हैं। कुछ मुद्दे जिन पर ध्यान रखना चाहिए:
टेक्स्ट तुलना में कोट्स गड़बड़ाना
DAX सिंगल (') और डबल (") कोट्स में अंतर करता है, और गलत वाला इस्तेमाल करने से आपका लॉजिक टूट सकता है, खासकर जब आप day names या flags जैसे टेक्स्ट वैल्यू की तुलना कर रहे हों। उदाहरण के लिए:
IsWeekend = IF(WEEKDAY('Date'[Date], 2) > 5, "Weekend", "Weekday")संचालित द्वारा
फ़ंक्शन्स के अंदर टेक्स्ट स्ट्रिंग्स के लिए हमेशा डबल कोट्स का उपयोग करें
सिंगल कोट्स टेबल और कॉलम रेफ़रेंसेज़ के लिए आरक्षित हैं, जैसे 'Date'[Date]।
रो कॉन्टेक्स्ट भूल जाना
यह सबसे आम वैचारिक गलतियों में से एक है। Calculated columns प्रत्येक रो को स्वतंत्र रूप से इवैल्यूएट करती हैं, जबकि measures फ़िल्टर और इवैल्यूएशन कॉन्टेक्स्ट पर निर्भर होती हैं। यदि आप किसी measure में एग्रीगेशन के बिना किसी कॉलम का संदर्भ दे रहे हैं, तो वह अपेक्षित रूप से व्यवहार नहीं करेगा क्योंकि कोई रो कॉन्टेक्स्ट नहीं है। उदाहरण के लिए, IF(WEEKDAY('Date'[Date], 2) > 5, TRUE(), FALSE()) calculated column के रूप में काम करता है, लेकिन यदि आपको यह फ़िल्टर्स के साथ डायनामिक रूप से प्रतिक्रिया देता चाहिए, तो आपको इसे SUMX() जैसे इटरेटर में लपेटना होगा या इसे किसी ऐसे measure में उपयोग करना होगा जो रो को काउंट या फ़िल्टर करता हो।
टाइम ज़ोन या कैलेंडर एलाइनमेंट की अनदेखी
टाइमस्टैम्प वाले इंपोर्टेड डेटा का उपयोग करते समय, DAX डेट फ़ंक्शन्स आपके कॉलम के डेट हिस्से पर काम करते हैं। यदि आपका डेटा टाइम ज़ोन्स को पार करता है या UTC समायोजन का उपयोग करता है, तो वे वीकेंड फ़्लैग अप्रत्याशित रूप से शिफ्ट हो सकते हैं। DAX लॉजिक लागू करने से पहले हमेशा Power Query में अपने datetime फ़ील्ड्स को क्लीन और नॉर्मलाइज़ करें।
वीकेंड लॉजिक को हार्डकोड करना
“Saturday और Sunday” जैसी फिक्स्ड लॉजिक को कई फ़ॉर्मूलों में एम्बेड करने से बचें। इसके बजाय, एक रीयूज़ेबल वेरिएबल या डिसकनेक्टेड टेबल परिभाषित करें जो आपके संगठन के वीकेंड दिनों को सूचीबद्ध करती हो। इससे जब बिज़नेस कैलेंडर बदलें तो मेंटेनेंस आसान हो जाता है।
इन छोटी-छोटी बातों को शुरू में पकड़ लेना बाद में घंटों की डिबगिंग से बचा सकता है। संदेह हो तो Power BI के Data View का उपयोग करके calculated column के परिणामों को रो-बाय-रो जाँचें—यह सबसे तेज़ तरीकों में से एक है यह सत्यापित करने के लिए कि आपका DAX लॉजिक विज़ुअल्स या measures में डालने से पहले इच्छित रूप से काम कर रहा है।
निष्कर्ष
DAX में वीकेंड और कस्टम वीक बाउंड्री के साथ काम करना केवल डेट मैथमेटिक्स नहीं है—यह इस बारे में है कि आपके Power BI मॉडल्स आपके व्यवसाय को वास्तव में कैसे चलाया जाता है, उसे प्रतिबिंबित करें। चाहे आप शनिवार और रविवार को नॉन-वर्किंग डे के रूप में चिह्नित कर रहे हों, अपने फ़िस्कल वीक को शनिवार से शुक्रवार के साथ संरेखित कर रहे हों, या छुट्टियाँ छोड़कर वर्किंग डेज़ की गणना कर रहे हों—लक्ष्य एक ही है: हर कैलकुलेशन में शुद्धता और संदर्भ।
आपने देखा कि WEEKDAY() और NETWORKDAYS() जैसी फ़ंक्शन्स कैसे लचीला डेट लॉजिक परिभाषित करने में मदद करती हैं, और calculated columns तथा measures अपनी-अपनी भूमिका निभाते हैं—एक स्ट्रक्चर के लिए और दूसरा डायनामिक विश्लेषण के लिए। रास्ते में, हमने वास्तविक उपयोग मामलों को देखा—पेरोल कटऑफ़ से लेकर रिटेल कैलेंडरों तक—और आम DAX गलतियों से बचना सीखा, जैसे गलत कोट्स का इस्तेमाल या रो कॉन्टेक्स्ट खो देना।
अगली बार जब आप तारीखों से संबंधित Power BI डैशबोर्ड बना रहे हों, तो डिफ़ॉल्ट कैलेंडर से आगे सोचें। अपने सप्ताह को कस्टमाइज़ करें, वीकेंड को स्पष्ट करें, और वर्किंग डेज़ को वो प्राथमिकता दें जिसके वे हक़दार हैं। इन DAX पैटर्न्स के साथ, आपकी रिपोर्ट्स सिर्फ़ समय नहीं दिखाएँगी—वे समय को वैसा दिखाएँगी जैसा आपका संगठन उसे अनुभव करता है।
यदि आपने DAX के साथ काम करने में थोड़ा भी समय बिताया है, तो आप जानते हैं कि तिथियाँ जल्दी ही पेचीदा हो सकती हैं। सब ठीक रहता है, जब तक कोई यह न कह दे, “हमारी रिपोर्टिंग वीक शनिवार से शुरू होती है,” या “क्या हम डैशबोर्ड में वीकेंड को अलग तरह से हाइलाइट कर सकते हैं?” फिर अचानक आप
WEEKDAY()के रिटर्न टाइप, ऑफ़सेट लॉजिक में उलझ जाते हैं और समझाने लगते हैं कि जब आपका व्यवसाय कुछ और कहता है तो Power BI शुक्रवार को हफ्ते का अंत क्यों मानता है।हममें से अधिकतर ने यह समस्या देखी है: आपको वीकेंड फ़्लैग करना है, वर्किंग डेज़ की गणना करनी है, या ऐसी कस्टम वीक बाउंड्री परिभाषित करनी है जो मानक कैलेंडर से मेल नहीं खाती। हो सकता है आपका वेयरहाउस रविवार से गुरुवार चलता हो, या आपकी फ़ाइनेंस टीम वीकेंड को छोड़कर वर्किंग डेज़ गिनना चाहती हो।
डिफ़ॉल्ट रूप से, DAX इसे पूरी तरह नहीं संभालता, लेकिन आपको इसे ठीक करने के लिए बिल्डिंग ब्लॉक्स देता है। इस लेख में, हम देखेंगे कि
WEEKDAY()का उपयोग करके वीकेंड कैसे फ़्लैग करें, वीक बाउंड्री (जैसे शनिवार–शुक्रवार) कैसे परिभाषित करें,NETWORKDAYS()या कंडिशनल लॉजिक से वर्किंग डेज़ कैसे गिनें, और इन कैलकुलेशन का उपयोग करके ऐसे मेट्रिक्स कैसे बनाएँ जो Power BI में सचमुच मायने रखें।DAX में वीकेंड को समझना
बुनियादी बातों से शुरू करते हैं—अपने डेटासेट में कौन-से दिन वीकेंड हैं, यह जानना। DAX इसके लिए
WEEKDAY()फ़ंक्शन देता है, और एक बार जब आप नंबरिंग सिस्टम समझ लेते हैं, तो यह हैरान करने लायक लचीला होता है। डिफ़ॉल्ट रूप से,WEEKDAY()1 से 7 तक एक संख्या देता है जो दी गई तिथि के सप्ताह के दिन का प्रतिनिधित्व करती है। दूसरा आर्ग्युमेंट इन संख्याओं के मैपिंग को नियंत्रित करता है। जो संस्करण ज़्यादातर डेवलपर उपयोग करते हैं वह हैWEEKDAY(date, 2), जो सोमवार के लिए1और रविवार के लिए7लौटाता है, जो अधिकांश बिज़नेस कैलेंडरों द्वारा उपयोग किए जाने वाले ISO मानक से मेल खाता है।यहाँ एक त्वरित उदाहरण है:
तिथि
WEEKDAY(Date, 2)
दिन
2025-10-13
1
Monday
2025-10-14
2
Tuesday
2025-10-18
6
Saturday
2025-10-19
7
Sunday
अब इसे उपयोगी बनाते हैं। आप अपनी
Dateटेबल में एक calculated column जोड़ सकते हैं जो वीकेंड को फ़्लैग करे:यहाँ क्या हो रहा है:
WEEKDAY('Date'[Date], 2)आपको दिन की संख्या देता है (1= Monday, …,7= Sunday)।DayNum > 5Saturday (6) और Sunday (7) की पहचान करता है।कॉलम वीकेंड के लिए
TRUEऔर वीकडे के लिएFALSEलौटाता है।यदि आपका सप्ताह मानक सोमवार–शुक्रवार पैटर्न का पालन नहीं करता—उदाहरण के लिए, आपका व्यवसाय शुक्रवार और शनिवार को वीकेंड मानता है—तो आप लॉजिक को आसानी से समायोजित कर सकते हैं:
यह एक-पंक्ति का बदलाव आपके मॉडल को कस्टम ऑपरेटिंग कैलेंडरों के लिए काम करने लायक बना देता है। यह कॉलम बनाने के बाद, Power BI में
Dateफ़ील्ड के साथ इसे एक साधारण टेबल विज़ुअल में डालें और जाँचें कि आपके वीकेंड दिन ठीक से लाइन अप हो रहे हैं या नहीं।कस्टम वीक बाउंड्री कैसे बनाएँ
ज़्यादातर Power BI मॉडल सोमवार–रविवार कैलेंडर मान लेते हैं, लेकिन वास्तविक दुनिया की रिपोर्टिंग अक्सर इतनी सधे हुए तरीके से नहीं चलती। उदाहरण के लिए, रिटेल डैशबोर्ड अक्सर शुक्रवार को क्लोज़ होते हैं; कुछ संगठन इसके बजाय शनिवार–शुक्रवार चक्र ट्रैक करते हैं। DAX में, आप अपने बिज़नेस कैलेंडर से मेल खाने वाली कस्टम वीक बाउंड्री बना सकते हैं। आइए इसे साफ़-सुथरे तरीके से, चरण-दर-चरण समझें।
शुक्रवार पर समाप्त होने वाला सप्ताह सेट करना
यदि आपका व्यवसायिक सप्ताह शुक्रवार को समाप्त होता है, तो आप प्रत्येक तिथि को उसके अनुरूप वीकएंड तिथि असाइन कर सकते हैं। लॉजिक सरल है: प्रत्येक तिथि लें, उसका वीकडे नंबर पता करें, और उसे आगे ऑफ़सेट करें जब तक वह शुक्रवार न आ जाए।
यह रहा calculated column का फ़ॉर्मूला:
यह क्या करता है:
WEEKDAY('Date'[Date], 2)आपको वीकडे इंडेक्स देता है (Monday = 1)।आप गणना करते हैं कि वह तिथि शुक्रवार से कितनी दूर है।
यदि दिन शुक्रवार से आगे निकल चुका है (जैसे, शनिवार या रविवार), तो यह 7 दिन जोड़कर अगले शुक्रवार पर रोल ओवर करता है।
यह तरीका शनिवार से शुक्रवार तक की सभी तिथियों को एक ही सप्ताह (जो शुक्रवार को समाप्त होता है) के अंतर्गत समूहित करता है।
इसे जाँचने के लिए:
इस कॉलम को अपनी Date टेबल में जोड़ें।
Power BI में
DateऔरWeekEnd_Fridayके साथ एक टेबल विज़ुअल बनाएं।आप देखेंगे कि हर शनिवार–शुक्रवार अनुक्रम एक ही वीकएंड तिथि पर मैप होता है।
शनिवार से शुरू होने वाला सप्ताह सेट करना
यदि आपकी रिपोर्टिंग वीक शनिवार से शुरू होती है, तो आप पिछले फ़ॉर्मूले के साथ एक वीक स्टार्ट कॉलम जोड़ सकते हैं। यही लॉजिक उलटा लागू करें—हर तिथि के सापेक्ष सबसे नज़दीकी पिछला शनिवार खोजें।
यह रहा संगत DAX कॉलम:
यह पिछली अभिव्यक्ति की ही तरह काम करता है, बस पिछड़े की ओर शिफ्ट होकर पिछले शनिवार तक जाता है।
आप पुराने कोड सैंपल भी देख सकते हैं जो calculated column के अंदर करंट रो कॉन्टेक्स्ट कैप्चर करने के लिए
EARLIER()फ़ंक्शन का उपयोग करते हैं। जैसे:आधुनिक DAX में इस परिदृश्य में
EARLIER()की आवश्यकता नहीं होती, क्योंकि calculated columns पहले से ही रो-बाय-रो इवैल्यूएट होती हैं, लेकिन फिर भी इसे समझना लेगेसी मॉडल्स या इटरेटर्स में रो कॉन्टेक्स्ट नेस्ट करने के समय सहायक है।एक बार जब आप दोनों कॉलम जोड़ लें, तो अपनी
Dateकॉलम के साथ टेबल विज़ुअल मेंWeekStart_SaturdayऔरWeekEnd_Fridayप्लॉट करके देखें। आपको स्पष्ट वीक बाउंड्री नज़र आएँगी जो आपके व्यवसाय की रफ़्तार का अनुसरण करती हैं, न कि डिफ़ॉल्ट कैलेंडर का।अगले चरण में, आप इन वीक स्टार्ट और एंड डेट्स को विज़ुअल्स में ग्रुपिंग कीज़ की तरह या मेज़र्स में एंकर की तरह उपयोग कर सकते हैं—बिज़नेस वीक के हिसाब से टोटल्स निकालने, वीक-ओवर-वीक तुलना करने, या नॉन-स्टैंडर्ड फ़िस्कल कैलेंडरों से संरेखित करने के लिए यह आदर्श है।
कॉलम और मेज़र में से कैसे चुनें
अब जब आपने अपनी कस्टम वीक बाउंड्री सेट कर ली हैं, तो यह तय करना उपयोगी है कि उन्हें अपने मॉडल में कैसे उपयोग करना है—calculated columns के रूप में या measures के रूप में। दोनों की अपनी जगह है, और कब किसका उपयोग करना है यह जानने से आपका Power BI मॉडल कुशल और पूर्वानुमेय रहता है।
calculated columns को स्थिर गुण समझें जिनसे आप स्लाइस या फ़िल्टर करना चाहते हैं। उदाहरण के लिए, आपके
IsWeekend,WeekStart_Saturday, याWeekEnd_Fridayकॉलम हर तिथि का वर्णन करते हैं। वे यूज़र इंटरेक्शन या फ़िल्टर पर निर्भर नहीं होते; वे बस बताते हैं कि हर दिन क्या है। इसलिए वे विज़ुअल्स को समूहित करने, रिलेशनशिप सेट करने या हायरार्की बनाने के लिए परफेक्ट हैं।इसके विपरीत, measures डायनामिक कैलकुलेशन हैं जो फ़िल्टर्स, स्लाइसर और कॉन्टेक्स्ट के अनुसार प्रतिक्रिया देते हैं। यदि आप मेट्रिक्स का सारांश या तुलना कर रहे हैं—जैसे, चुनी गई रेंज में वर्किंग डेज़ की गिनती या प्रति सप्ताह औसत बिक्री—तो आपको measure चाहिए।
यहाँ एक त्वरित तुलना ध्यान में रखेn mind:
उपयोग परिदृश्य
प्रकार
उदाहरण
वीकेंड या वीक बाउंड्री पहचानें
Calculated column
IsWeekend = IF(WEEKDAY('Date'[Date],2)>5,TRUE(),FALSE())कस्टम वीक रेंज के अनुसार विज़ुअल्स स्लाइस करें
Calculated column
WeekStart_Saturday,WeekEnd_Fridayकरेंट फ़िल्टर में वर्किंग डेज़ गिनें
Measure
WorkingDays = COUNTROWS(FILTER('Date', 'Date'[IsWeekend] = FALSE()))कस्टम सप्ताहों के बीच कुल बिक्री की तुलना करें
Measure
TotalSalesByWeek = SUM(Sales[Amount])जिसेWeekStart_Saturdayद्वारा grouped किया गया हैसंक्षेप में:
NETWORKDAYS() के साथ वर्किंग डेज़ की गणना
एक बार जब आपके वीकेंड और वीक बाउंड्री परिभाषित हो जाएँ, अगला तार्किक कदम है वर्किंग डेज़ की गणना—दो तिथियों के बीच के वीकडेज़ की संख्या, वैकल्पिक रूप से छुट्टियाँ छोड़कर। Power BI और DAX इसे
NETWORKDAYS()फ़ंक्शन के साथ सरल बना देते हैं, जो DAX के हालिया संस्करणों में पेश हुआ है।सबसे सरल रूप में, इसका सिंटैक्स इस तरह दिखता है:
यहाँ हर पैरामीटर कैसे काम करता है:
<start_date>और<end_date>आपकी रेंज परिभाषित करते हैं।<weekend>वैकल्पिक है और आपको यह निर्दिष्ट करने देता है कि कौन-से दिन वीकेंड माने जाएँ।<holidays>भी वैकल्पिक है — आप छुट्टियों की तारीखों का कोई कॉलम या टेबल पास कर सकते हैं ताकि वे गणना से बाहर हो जाएँ।वीकेंड कोड समझना
<weekend>आर्ग्युमेंट न्यूमेरिक कोड्स का उपयोग करता है यह परिभाषित करने के लिए कि कौन-से दिन वीकेंड माने जाएँ। यहाँ कुछ मानक विकल्प हैं जिन्हें आप संभवतः उपयोग करेंगे:कोड
वीकेंड दिन
विवरण
1
Saturday, Sunday
डिफ़ॉल्ट (पश्चिमी कार्यसप्ताह)
7
Friday, Saturday
मध्य-पूर्वी कैलेंडरों में आम
11
Sunday only
केवल रविवार बंद के लिए
12
Monday only
केवल सोमवार नॉन-वर्किंग डेज़ के लिए
उदाहरण के लिए, यदि आपका कार्यसप्ताह रविवार से गुरुवार चलता है, तो आप शुक्रवार–शनिवार वीकेंड के लिए कोड
7का इस्तेमाल करेंगे।यहाँ मॉडल में दो कॉलम के बीच वर्किंग डेज़ कैसे गिनें:
यह फ़ॉर्मूला मानता है कि शनिवार और रविवार वीकेंड हैं। यदि आपका व्यवसाय शुक्रवार–शनिवार वीकेंड मानता है, तो इसे इस तरह समायोजित करें:
छुट्टियाँ निकालना
आप इसे एक कदम और आगे बढ़ा सकते हैं, एक समर्पित
Holidayटेबल में संग्रहीत आधिकारिक छुट्टियों को निकालकर। मान लें कि आपके पासHoliday[Date]कॉलम वाली टेबल है। इसे इस तरह शामिल करें:यह सेटअप सुनिश्चित करता है कि वीकेंड और आपके संगठन द्वारा परिभाषित छुट्टियाँ काउंट से बाहर रहें। यह एक छोटा-सा ऐडिशन है जो आपकी रिपोर्ट्स को कहीं ज़्यादा सटीक बनाता है, खासकर वर्कफ़ोर्स प्लानिंग, SLA मॉनिटरिंग, या ऑपरेशनल डैशबोर्ड्स के लिए।
उदाहरण उपयोग परिदृश्य
मान लें आपकी कंपनी Power BI में प्रोजेक्ट टाइमलाइन ट्रैक करती है। हर रिकॉर्ड में
StartDateऔरEndDateहै।WorkingDays_WithHolidaysmeasure जोड़कर, आप जल्दी से देख सकते हैं:इसे एक्शन में देखने के लिए, इस measure को
Project Name,StartDate, औरEndDateके साथ टेबल विज़ुअल में डालें। आपको तुरंत ऐसी टाइमलाइन तस्वीर मिलेगी जो केवल तिथियों के अंतर नहीं, बल्कि वास्तविक वर्किंग डेज़ पर आधारित होगी।बिज़नेस डैशबोर्ड्स में व्यावहारिक अनुप्रयोग
अब जब आपके पास वर्किंग डेज़, वीकेंड फ़्लैग और कस्टम वीक बाउंड्री मौजूद हैं, तो देखें ये वास्तविक दुनिया के Power BI डैशबोर्ड्स में कैसे फिट होते हैं। वीकेंड या फ़िस्कल वीक को फिर से परिभाषित करने की क्षमता केवल एक तकनीकी ट्रिक नहीं है; यह सीधे-सीधे प्रभावित करती है कि मेट्रिक्स कैसे कैलकुलेट, विज़ुअलाइज़ और विभागों में समझे जाते हैं।
पेरोल और टाइमशीट कटऑफ़
कई संगठन तय शनिवार–शुक्रवार या रविवार–शनिवार चक्र पर पेरोल प्रोसेस करते हैं। DAX में वीक बाउंड्री परिभाषित करके, आप सैलरी पीरियड्स, ओवरटाइम कैलकुलेशन और टाइमशीट एंट्रीज़ को उसी वर्किंग वीक के साथ संरेखित कर सकते हैं जिसे आपका HR सिस्टम उपयोग करता है। उदाहरण के लिए, आप कस्टम सप्ताह के हिसाब से कुल कार्य घंटे या पूरे किए गए शिफ्ट्स की गणना कर सकते हैं, जिससे पेरोल रिपोर्ट्स डिफ़ॉल्ट सोमवार–रविवार कैलेंडर के बजाय आंतरिक शेड्यूल्स से बिल्कुल मेल खाएँ।
ऑपरेशनल KPI और सर्विस मॉनिटरिंग
ऑपरेशंस और लॉजिस्टिक्स टीमें अक्सर डिलीवरी टर्नअराउंड टाइम या इन्सिडेंट रेज़ॉल्यूशन जैसे KPI केवल वर्किंग डेज़ के आधार पर मापती हैं।
NETWORKDAYS()का उपयोग यह सुनिश्चित करता है कि ये मेट्रिक्स वास्तविक बिज़नेस क्षमता को दर्शाएँ, न कि उन वीकेंड्स को जब कुछ नहीं चलता।अपने वर्किंग डे कैलकुलेशन को
WeekStart_SaturdayयाWeekEnd_Fridayकॉलम्स के साथ पेयर करने से आप डेटा को उसी ऑपरेशनल वीक के अनुसार ग्रुप कर सकते हैं जिसे प्रबंधन मीटिंग्स और रिपोर्ट्स में ट्रैक करता है।रिटेल और बिक्री प्रदर्शन
रिटेलर शायद ही कैलेंडर वीक का पालन करते हैं। कई लोग शनिवार से शुक्रवार को तरजीह देते हैं ताकि पूरा वीकेंड सेल्स पीरियड एक ही सुसंगत रिपोर्टिंग ब्लॉक में आ जाए। अपनी डेट टेबल को उसी शेड्यूल के अनुसार मॉडल करने से वीकेंड सेल्स ट्रेंड्स एक ही सप्ताह के भीतर रहते हैं, जिससे वीकेंड्स के बीच तुलना अर्थपूर्ण बनती है। यह छोटा-सा समायोजन “वीक-ओवर-वीक” विज़ुअल्स के विकृत होने से बचाता है और अधिक सटीक रोलिंग एवरेज देता है।
कस्टम फ़िस्कल वीक और फ़ोरकास्टिंग
कुछ फ़ाइनेंस टीमें ऐसे फ़िस्कल वीक पर काम करती हैं जो हफ्ते के मध्य से शुरू होते हैं या 4-4-5 अकाउंटिंग पैटर्न का अनुसरण करते हैं। आपकी कस्टम वीक बाउंड्री इसमें आसानी से प्लग हो सकती हैं।एक बार जब आपकी डेट टेबल में
WeekStartऔरWeekEndकॉलम शामिल हो जाएँ, तो रेवेन्यू रिकग्निशन, खर्च ट्रैकिंग, या फ़ोरकास्टिंग जैसे measures को निरंतर रूप से एग्रीगेट किया जा सकता है, चाहे आपका फ़िस्कल कैलेंडर कितना भी असामान्य क्यों न हो।वर्किंग डेज़ पर आधारित रोलिंग एवरेज
मूविंग एवरेज निकालते समय, खासकर दैनिक बिक्री या प्रोडक्शन दर जैसे KPI के लिए, कैलेंडर डेज़ के बजाय वर्किंग डेज़ पर आधारित गणना बेहतर होती है।
उदाहरण के लिए, यदि आपके
IsWeekendफ़्लैग का उपयोग करके वीकेंड को बाहर रखा गया है, तो 7-दिन का रोलिंग एवरेज सचमुच एक बिज़नेस वीक की गतिविधि को दर्शाएगा—न कि नॉन-वर्किंग डेज़ पर आए फुलाए या भ्रामक डिप्स को।संक्षेप में, कस्टम वीक परिभाषाएँ और वर्किंग-डे लॉजिक आपके Power BI डैशबोर्ड्स को इस बात के और करीब लाते हैं कि आपका व्यवसाय वास्तव में कैसे संचालित होता है। चाहे आप पेरोल कटऑफ़, शिपिंग लीड टाइम्स, या वीकेंड सेल्स पीक ट्रैक कर रहे हों, ये DAX पैटर्न आपकी इनसाइट्स को और साफ़, निष्पक्ष और अधिक क्रियाशील बनाते हैं।
याद रखने योग्य मुख्य बिंदु
समापन से पहले, मुख्य बातें समेट लें ताकि आप इन्हें अपने Power BI प्रोजेक्ट्स में प्रभावी ढंग से लागू कर सकें।
रो-वाइज़ वर्गीकरण के लिए calculated columns का उपयोग करें: जब आपको हर तिथि को लेबल करना हो—जैसे वीकेंड मार्क करना, वीक बाउंड्री असाइन करना, या बिज़नेस डेज़ कैटेगराइज़ करना—calculated columns सबसे बेहतर हैं। वे स्थिर गुण प्रदान करते हैं जो आपके मॉडल में स्लाइसर्स, फ़िल्टर्स और रिलेशनशिप्स में सहजता से काम करते हैं।
सही रिटर्न टाइप के साथ
WEEKDAY()का सावधानी से उपयोग करें: ध्यान रखें किWEEKDAY(date, 2)में काउंट सोमवार (1) से शुरू होता है और रविवार (7) पर समाप्त। इस पैरामीटर को समायोजित करके आप अपने कैलकुलेशन को क्षेत्रीय या संगठनात्मक कार्यसप्ताह मानकों से संरेखित कर सकते हैं। अपना रिटर्न टाइप हमेशा दोबारा जाँचें—DAX टाइम लॉजिक में ऑफ-बाय-वन त्रुटियों के यह सबसे आम कारणों में से एक है।NETWORKDAYS()वीकेंड और छुट्टियाँ निकालने के लिए आपका मुख्य साधन है: यह फ़ंक्शन वर्किंग-डे कैलकुलेशन को सरल बनाता है, आपको जटिल डेट फ़िल्टर्स या मैनुअल लूप से बचाता है। सटीक काउंट पाने के लिए इसे अपनी कंपनी के वीकेंड कोड और हॉलिडे टेबल के साथ मिलाएँ, ताकि केवल कैलेंडर गैप नहीं बल्कि असली बिज़नेस डेज़ परिलक्षित हों।इन मूल बातों—कस्टम वीक स्ट्रक्चर, सोच-समझकर किया गया वीकडे लॉजिक, और सटीक वर्किंग-डे काउंट—में महारत हासिल करके, आप हर Power BI डैशबोर्ड में अधिक शुद्धता और लचीलापन लाएँगे। अगली बार जब आप डेट मॉडल सेट कर रहे हों या रिपोर्ट्स को बिज़नेस कैलेंडरों से संरेखित कर रहे हों, ये DAX पैटर्न आपकी टूलकिट के शीर्ष पर होने चाहिए
आम गलतियों से बचें
यहाँ तक कि अनुभवी Power BI डेवलपर्स भी DAX में डेट और वीक लॉजिक पर काम करते समय सूक्ष्म दिक्कतों में फँस सकते हैं। कुछ मुद्दे जिन पर ध्यान रखना चाहिए:
टेक्स्ट तुलना में कोट्स गड़बड़ाना
DAX सिंगल (') और डबल (") कोट्स में अंतर करता है, और गलत वाला इस्तेमाल करने से आपका लॉजिक टूट सकता है, खासकर जब आप day names या flags जैसे टेक्स्ट वैल्यू की तुलना कर रहे हों। उदाहरण के लिए:
फ़ंक्शन्स के अंदर टेक्स्ट स्ट्रिंग्स के लिए हमेशा डबल कोट्स का उपयोग करें
सिंगल कोट्स टेबल और कॉलम रेफ़रेंसेज़ के लिए आरक्षित हैं, जैसे
'Date'[Date]।रो कॉन्टेक्स्ट भूल जाना
यह सबसे आम वैचारिक गलतियों में से एक है। Calculated columns प्रत्येक रो को स्वतंत्र रूप से इवैल्यूएट करती हैं, जबकि measures फ़िल्टर और इवैल्यूएशन कॉन्टेक्स्ट पर निर्भर होती हैं। यदि आप किसी measure में एग्रीगेशन के बिना किसी कॉलम का संदर्भ दे रहे हैं, तो वह अपेक्षित रूप से व्यवहार नहीं करेगा क्योंकि कोई रो कॉन्टेक्स्ट नहीं है। उदाहरण के लिए,
IF(WEEKDAY('Date'[Date], 2) > 5, TRUE(), FALSE())calculated column के रूप में काम करता है, लेकिन यदि आपको यह फ़िल्टर्स के साथ डायनामिक रूप से प्रतिक्रिया देता चाहिए, तो आपको इसे SUMX() जैसे इटरेटर में लपेटना होगा या इसे किसी ऐसे measure में उपयोग करना होगा जो रो को काउंट या फ़िल्टर करता हो।टाइम ज़ोन या कैलेंडर एलाइनमेंट की अनदेखी
टाइमस्टैम्प वाले इंपोर्टेड डेटा का उपयोग करते समय, DAX डेट फ़ंक्शन्स आपके कॉलम के डेट हिस्से पर काम करते हैं। यदि आपका डेटा टाइम ज़ोन्स को पार करता है या UTC समायोजन का उपयोग करता है, तो वे वीकेंड फ़्लैग अप्रत्याशित रूप से शिफ्ट हो सकते हैं। DAX लॉजिक लागू करने से पहले हमेशा Power Query में अपने datetime फ़ील्ड्स को क्लीन और नॉर्मलाइज़ करें।
वीकेंड लॉजिक को हार्डकोड करना
“Saturday और Sunday” जैसी फिक्स्ड लॉजिक को कई फ़ॉर्मूलों में एम्बेड करने से बचें। इसके बजाय, एक रीयूज़ेबल वेरिएबल या डिसकनेक्टेड टेबल परिभाषित करें जो आपके संगठन के वीकेंड दिनों को सूचीबद्ध करती हो। इससे जब बिज़नेस कैलेंडर बदलें तो मेंटेनेंस आसान हो जाता है।
इन छोटी-छोटी बातों को शुरू में पकड़ लेना बाद में घंटों की डिबगिंग से बचा सकता है। संदेह हो तो Power BI के Data View का उपयोग करके calculated column के परिणामों को रो-बाय-रो जाँचें—यह सबसे तेज़ तरीकों में से एक है यह सत्यापित करने के लिए कि आपका DAX लॉजिक विज़ुअल्स या measures में डालने से पहले इच्छित रूप से काम कर रहा है।
निष्कर्ष
DAX में वीकेंड और कस्टम वीक बाउंड्री के साथ काम करना केवल डेट मैथमेटिक्स नहीं है—यह इस बारे में है कि आपके Power BI मॉडल्स आपके व्यवसाय को वास्तव में कैसे चलाया जाता है, उसे प्रतिबिंबित करें। चाहे आप शनिवार और रविवार को नॉन-वर्किंग डे के रूप में चिह्नित कर रहे हों, अपने फ़िस्कल वीक को शनिवार से शुक्रवार के साथ संरेखित कर रहे हों, या छुट्टियाँ छोड़कर वर्किंग डेज़ की गणना कर रहे हों—लक्ष्य एक ही है: हर कैलकुलेशन में शुद्धता और संदर्भ।
आपने देखा कि
WEEKDAY()औरNETWORKDAYS()जैसी फ़ंक्शन्स कैसे लचीला डेट लॉजिक परिभाषित करने में मदद करती हैं, और calculated columns तथा measures अपनी-अपनी भूमिका निभाते हैं—एक स्ट्रक्चर के लिए और दूसरा डायनामिक विश्लेषण के लिए। रास्ते में, हमने वास्तविक उपयोग मामलों को देखा—पेरोल कटऑफ़ से लेकर रिटेल कैलेंडरों तक—और आम DAX गलतियों से बचना सीखा, जैसे गलत कोट्स का इस्तेमाल या रो कॉन्टेक्स्ट खो देना।अगली बार जब आप तारीखों से संबंधित Power BI डैशबोर्ड बना रहे हों, तो डिफ़ॉल्ट कैलेंडर से आगे सोचें। अपने सप्ताह को कस्टमाइज़ करें, वीकेंड को स्पष्ट करें, और वर्किंग डेज़ को वो प्राथमिकता दें जिसके वे हक़दार हैं। इन DAX पैटर्न्स के साथ, आपकी रिपोर्ट्स सिर्फ़ समय नहीं दिखाएँगी—वे समय को वैसा दिखाएँगी जैसा आपका संगठन उसे अनुभव करता है।