Power BI में COUNTIF() में महारत: DAX-आधारित तरीका
Excel से आने वाले Power BI उपयोगकर्ताओं को हमेशा पता चलता है कि Power BI में मूल COUNTIF() फ़ंक्शन नहीं है। यह लेख Power BI में COUNTIF() लागू करने के विभिन्न तरीकों और इसके व्यावहारिक उपयोग मामलों को दिखाएगा।
Excel उपयोगकर्ताओं में COUNTIF() लोकप्रिय है क्योंकि यह किसी शर्त के आधार पर डेटा की गणना करने देता है। हालांकि, Power BI पर आने पर कई उपयोगकर्ताओं ने देखा कि Power BI में मूल COUNTIF() फ़ंक्शन नहीं है।
अच्छी बात यह है कि उपयोगकर्ता विभिन्न DAX (Data Analysis Expressions) फ़ॉर्मूला का उपयोग करके COUNTIF() जैसी कार्यक्षमता दोहरा सकते हैं। यह लेख बताएगा कि CALCULATE(), COUNTROWS(), COUNTA(), और FILTER() जैसे DAX फ़ंक्शंस का उपयोग करके Power BI में COUNTIF()-जैसी गणनाएँ कैसे करें।
Power BI में COUNTIF() क्यों मौजूद नहीं है
Excel जहाँ सेल-आधारित फ़ॉर्मूलों पर आधारित है, वहीं Power BI तालिका-आधारित गणनाओं और फ़िल्टर संदर्भ पर निर्मित है। यह तालिकाओं और उनके संबंधों पर कार्य करता है और गणना के लिए DAX का उपयोग करता है।
अलग-अलग कोशिकाओं को संदर्भित करने के बजाय, DAX कॉलम पर काम करता है और फ़िल्टर संदर्भ के आधार पर गतिशील रूप से गणनाएँ लागू करता है—जिसे स्लाइसर, पंक्ति/स्तंभ फ़िल्टर और टेबल संबंध निर्धारित करते हैं।
Excel COUNTIF() सेल-आधारित दृष्टिकोण अपनाता है, जहाँ फ़ॉर्मूले निर्धारित श्रेणी के भीतर पंक्ति-दर-पंक्ति लागू होते हैं। Power BI का तरीका अलग है क्योंकि यह तालिकाओं के बीच संबंधों का उपयोग करके गणनाओं को परिष्कृत करता है। अलग-अलग कोशिकाओं को स्कैन करने के बजाय, यह DAX का उपयोग करके रिपोर्ट संदर्भ के आधार पर फ़िल्टर लागू करता है।
उपयोगकर्ताओं के लिए निहितार्थ
Excel से आने वाले Power BI उपयोगकर्ता के रूप में, आपको गणना के लिए Power BI के तालिका-आधारित तरीके के साथ तालमेल बिठाना होगा। DAX दृष्टिकोण, जो डेटा के कॉलम पर कार्य करते हैं, पंक्ति-दर-पंक्ति दोहराव की तुलना में अधिक कुशल हैं।
Excel के विपरीत, Power BI उपयोगकर्ताओं को अपने डेटा मॉडल के अनुसार COUNTIF() को दोहराने के लिए सबसे उपयुक्त तरीकों का चयन करना पड़ता है। इसलिए, एक उपयोगकर्ता के रूप में, आपको अलग-अलग कोशिकाओं पर फ़ॉर्मूले लगाने की आदत छोड़कर तालिकाओं और फ़िल्टर संदर्भ के संदर्भ में सोचना होगा।
COUNTIF() लॉजिक दोहराने के लिए मुख्य DAX फ़ंक्शंस
Power BI में COUNTIF() लागू करने का आपका तरीका ऐसे कारकों पर निर्भर करता है जैसे तालिकाओं के बीच संबंध, आपके डेटा में गायब मानों की उपस्थिति या अनुपस्थिति, डेटा का आकार, आदि। कुछ DAX फ़ंक्शंस तेज़ और अधिक कुशल प्रोसेसिंग के लिए बेहतर अनुकूलित होते हैं।
मुख्य फ़ंक्शंस का अवलोकन
DAX फ़ंक्शंस का उपयोग calculated columns, measures, और tables बनाने के लिए किया जाता है। यहाँ कुछ DAX फ़ंक्शंस हैं जो Power BI में COUNTIF() की कार्यक्षमता दोहराने में आपकी मदद करेंगे।
CALCULATE(): यह फ़ंक्शन किसी अभिव्यक्ति के फ़िल्टर संदर्भ को संशोधित करने के लिए उपयोग होता है और नए फ़िल्टर लागू करने या मौजूदा फ़िल्टर को गतिशील रूप से संशोधित करने देता है। उदाहरण के लिए, आप किसी विशेष क्षेत्र के लिए कुल बिक्री की गणना करने हेतु इसका उपयोग कर सकते हैं।
COUNTROWS(): यह दी गई तालिका में पंक्तियों की संख्या गिनता है, और आप इसे फ़िल्टरिंग फ़ंक्शंस के साथ मिलाकर विशिष्ट पंक्तियाँ गिन सकते हैं। उदाहरण के लिए, $1,000 से अधिक के बिक्री ऑर्डर गिनना।
COUNTA(): यह फ़ंक्शन किसी कॉलम में non-blank मानों की गणना करता है और गायब डेटा से निपटने पर उपयोगी है। उदाहरण के लिए, आप non-blank customer IDs गिन सकते हैं ताकि केवल वैध रिकॉर्ड शामिल हों।
FILTER(): आमतौर पर CALCULATE() और COUNTROWS() के साथ उपयोग किया जाता है, यह किसी शर्त के आधार पर एक तालिका लौटाता है। उदाहरण के लिए, आप $500 से अधिक के बिक्री ऑर्डरों वाली तालिका लौटा सकते हैं।
ALLEXCEPT(): यह निर्दिष्ट कॉलमों को छोड़कर लागू सभी फ़िल्टर हटा देता है; उदाहरण के लिए, आप स्लाइसर या टेबल फ़िल्टर लागू होने के बावजूद क्षेत्र अनुसार कुल बिक्री की तालिका लौटा सकते हैं। यह हायरार्की पर समेकन करते समय महत्वपूर्ण होता है।
RELATEDTABLE(): मौजूदा संबंधों के आधार पर एक तालिका लौटाता है। उदाहरण के लिए, ग्राहक डेटा से संबंधों का उपयोग करके प्रत्येक ग्राहक के लिए बिक्री ऑर्डरों की संख्या गिनना।
ये साथ में कैसे काम करते हैं
चूँकि COUNTROWS() किसी तालिका में पंक्तियों की संख्या गिनता है, आप FILTER() का उपयोग करके अपने डेटा से ऐसी तालिका लौटा सकते हैं जो किसी शर्त को पूरा करती हो। फिर, CALCULATE() फ़ंक्शन का उपयोग करके फ़िल्टर संदर्भ संशोधित करें, ताकि COUNTROWS() केवल उन्हीं पंक्तियों पर विचार करे जो शर्त से मेल खाती हैं। यहाँ एक DAX सिंटैक्स का उदाहरण है जो दिखाता है यह कैसे काम करता है।
Sales over 5 quantities =
CALCULATE(
COUNTROWS(Sales),
FILTER('Sales, 'Sales[Quantity] > 5)
)संचालित द्वारा
CALCULATE() फ़ंक्शन कुछ हद तक दो अलग-अलग अभिव्यक्तियों को जोड़ने जैसा है। COUNTROWS() से सारा डेटा गिनने के बजाय, CALCULATE() फ़ंक्शन इसे FILTER() फ़ंक्शन से प्राप्त फ़िल्टर संदर्भ तक सीमित कर देता है।
Power BI में COUNTIF() समकक्षों के बुनियादी उदाहरण
Power BI में COUNTIF() कैसे लागू करें, इसके कुछ उदाहरण दिखाने से पहले, सुनिश्चित करें कि आप supermarket sales data लोड कर लें।
उदाहरण 1: महिला ग्राहकों द्वारा किए गए ऑर्डरों की संख्या
नीचे दिया गया DAX सिंटैक्स महिला ग्राहकों द्वारा किए गए ऑर्डरों की संख्या की गणना करता है।
Orders by female customers =
CALCULATE(
COUNTROWS(Sales),
FILTER(Sales, Sales[Gender] = "Female")
)संचालित द्वारा
महिला ग्राहकों द्वारा किए गए ऑर्डरों की संख्या। चित्र: लेखक।
FILTER(Sales, Sales[Gender] = "Female") महिला ग्राहकों के बिक्री ऑर्डरों को फ़िल्टर करता है।
COUNTROWS(Sales) सारी डेटा पंक्तियों को गिनने के बजाय, CALCULATE() फ़ंक्शन के प्रभाव से फ़िल्टर की गई तालिका को गिनता है।
उदाहरण 2: शहर के अनुसार ऑर्डरों की गणना
नीचे प्रत्येक शहर के लिए ऑर्डरों की संख्या गिनने का DAX सिंटैक्स दिया गया है।
Total Orders by City = CALCULATE(COUNTA(Sales[City]), ALLEXCEPT(Sales, Sales[City]))संचालित द्वारा
शहर के अनुसार ऑर्डरों की संख्या। चित्र: लेखक।
COUNTA(Sales[City]) सिटी कॉलम में non-blank मानों की संख्या गिनता है।
ALLEXCEPT(Sales, Sales[City]) Sales तालिका से City कॉलम को छोड़कर सभी फ़िल्टर हटा देता है।
CALCULATE() सुनिश्चित करता है कि COUNTA() प्रत्येक शहर के लिए अलग-अलग गणना हो, जो Excel के COUNTIF() जैसा व्यवहार करता है।
उदाहरण 3: COUNTROWS का उपयोग करते हुए वैकल्पिक तरीका
एक और विकल्प नीचे दिया गया DAX सिंटैक्स है, जो COUNTA() के बजाय COUNTROWS() का उपयोग करता है।
Total Orders by City = CALCULATE(COUNTROWS(Sales), ALLEXCEPT(Sales, Sales[City]))संचालित द्वारा
COUNTROWS()Sales तालिका में पंक्तियों की संख्या गिनता है, भले ही ब्लैंक मौजूद हों या नहीं।
यदि City कॉलम खाली है, तो दोनों तरीके समान परिणाम देंगे। लेकिन यदि City कॉलम में missing values हैं, तो COUNTA() उन्हें बाहर रखता है, जबकि COUNTROWS() उन्हें शामिल करता है।
जब हर पंक्ति एक रिकॉर्ड का प्रतिनिधित्व करती है, जैसे कि बिक्री ऑर्डर, तो आपको COUNTROWS() फ़ंक्शन का उपयोग करना चाहिए। लेकिन यदि आपके डेटा में कुछ अवैध प्रविष्टियाँ हैं, तो आप COUNTA() का उपयोग कर सकते हैं, जो केवल वैध मान वाले रिकॉर्ड गिनता है।
डायनेमिक गणनाओं के लिए Measures का उपयोग
ऐसी स्थितियाँ आती हैं जहाँ आपको ऐसे measures बनाने होते हैं जो टेबल फ़िल्टर या स्लाइसर के आधार पर गतिशील रूप से बदलते हैं। इस खंड में ऐसे परिदृश्यों में COUNTIF() कैसे लागू करें, यह बताया गया है।
परिदृश्य: उच्च-मूल्य वाले ऑर्डरों की गणना
यहाँ एक उदाहरण है जहाँ हम उन ऑर्डरों में रुचि रखते हैं जिनकी कुल मात्रा पाँच से अधिक है।
High Value Orders = COUNTROWS(FILTER(Sales, Sales[Quantity] > 5))संचालित द्वारा
उच्च-मूल्य ऑर्डरों की संख्या। चित्र: लेखक।
FILTER(Sales, Sales[Quantity] > 5) वे बिक्री ऑर्डर लौटाता है जिनकी मात्रा पाँच से अधिक है।
COUNTROWS() फ़िल्टर की गई तालिका की पंक्तियाँ गिनता है जिनके ऑर्डर पाँच से अधिक हैं।
Calculated columns बनाने पर स्टोरेज और मॉडल आकार बढ़ता है, जबकि measures केवल आवश्यकता पड़ने पर गणना होते हैं, इसलिए वे अधिक कुशल हैं। Calculated column बनाने का DAX सिंटैक्स इस प्रकार होगा:
High Value = IF(Sales[Quantity] > 5, 1, 0)संचालित द्वारा
Calculated column High Value। चित्र: लेखक।
यह हर पंक्ति में स्थिर 1 या 0 संग्रहीत करेगा। उच्च-मूल्य वाले ऑर्डर गिनने के लिए, आपको SUM(Sales[High Value]) का उपयोग करते हुए एक measure बनाना होगा।
कल्पना करें कि आप हर फ़िल्टर के लिए calculated columns बना रहे हैं। इससे स्टोरेज उपयोग बढ़ेगा और लचीलापन घटेगा।
यहाँ एक तालिका है जो दिखाती है कि आपको calculated columns के बजाय हमेशा measures का उपयोग क्यों विचार करना चाहिए।
Measure
Calculated Column
क्वेरी समय पर गणना, फ़िल्टरों पर प्रतिक्रिया
स्थिर, डेटा लोड/रिफ्रेश पर गणना
अधिक कुशल, केवल आवश्यकता पर गणना
स्टोरेज खपत करता है और मॉडल आकार बढ़ाता है
फ़िल्टर, स्लाइसर और विज़ुअल्स के आधार पर गतिशील रूप से समायोजित हो सकता है।
डेटा रिफ्रेश के बिना मान समान रहते हैं।
एडवांस्ड तकनीकें और बहु-शर्तें
Excel COUNTIFS() बहु-शर्तों का समर्थन करता है, जिसे आप Power BI में भी दोहरा सकते हैं।
एकाधिक मानदंड / COUNTIFS() लॉजिक
यहाँ DAX सिंटैक्स है जो पाँच से अधिक मात्रा और क्रेडिट कार्ड से भुगतान वाले ऑर्डरों की गणना करता है।
पाँच से अधिक मात्रा और क्रेडिट कार्ड से भुगतान वाले ऑर्डरों की संख्या। चित्र: लेखक।
ऊपर का फ़ॉर्मूला Sales तालिका को फ़िल्टर करता है जहाँ ऑर्डर मात्रा 5 से अधिक है और भुगतान का तरीका क्रेडिट कार्ड है। && AND ऑपरेटर को दर्शाता है, जो सुनिश्चित करता है कि दोनों शर्तें पूरी करने वाले ऑर्डर ही गिने जाएँ।
जब आप केवल उन ऑर्डरों में रुचि रखते हैं जो किसी भी एक शर्त को पूरा करते हैं, तब OR ऑपरेटर का उपयोग होता है, जिसे DAX में || से दर्शाया जाता है।
ऐसे ऑर्डरों की संख्या जिनमें या तो मात्रा पाँच से अधिक है या क्रेडिट कार्ड से भुगतान हुआ है। चित्र: लेखक।
लॉजिकल ऑपरेटर और वेरिएबल्स का उपयोग
कभी-कभी COUNTIF() को दोहराने वाला DAX सिंटैक्स जटिल हो सकता है। वेरिएबल्स का उपयोग करने से समझना आसान होता है और सुनिश्चित होता है कि शर्तें इच्छित क्रम में मूल्यांकित हों। यह मानों को एक बार संग्रहीत करके अनावश्यक गणनाओं से भी बचाता है।
यहाँ एक और उदाहरण है जो दिखाता है कि वेरिएबल्स का उपयोग करके महिला ग्राहक द्वारा किए गए उन ऑर्डरों की संख्या कैसे गिनें जो या तो क्रेडिट कार्ड से भुगतान किए गए हों या पाँच से अधिक मात्रा वाले हों।
CreditCard Or Above 5 By Female =
VAR FilteredSales =
FILTER(
Sales,
(Sales[Quantity] > 5 || Sales[Payment] = "Credit card")
&& Sales[Gender] = "Female"
)
RETURN
COUNTROWS(FilteredSales)संचालित द्वारा
महिला ग्राहकों द्वारा किए गए ऑर्डरों की संख्या—या तो क्रेडिट कार्ड से भुगतान या मात्रा पाँच से अधिक। चित्र: लेखक।
फ़िल्टर को एक वेरिएबल में संग्रहीत किया गया है, जिसका उपयोग COUNTROWS() फ़ंक्शन में होता है। ऊपर दी गई अभिव्यक्ति को लिखने का एक और तरीका यह है
CreditCard Or Above 5 By Female =
VAR MinQuantity = 5
VAR FilteredSales =
FILTER(
Sales,
(Sales[Quantity] > MinQuantity || Sales[Payment] = "Credit card")
&& Sales[Gender] = "Female"
)
VAR Result = COUNTROWS(FilteredSales)
RETURN
Resultसंचालित द्वारा
इस बार, न्यूनतम मात्रा, फ़िल्टर और परिणाम—तीनों को वेरिएबल के रूप में संग्रहीत किया गया है। जैसे गणित में प्रसिद्ध BODMAS सिद्धांत, जो पहले कोष्ठक के अंदर की क्रियाओं को प्राथमिकता देता है, वैसे ही DAX भी कोष्ठक के भीतर की शर्तों को पहले प्राथमिकता देता है।
ऊपर के उदाहरण में, OR ऑपरेटर || का मूल्यांकन AND ऑपरेटर && से पहले होता है क्योंकि वह कोष्ठकों के अंदर है। इसका मतलब है कि पहले उन बिक्री ऑर्डरों को फ़िल्टर किया जाता है जिनमें मात्रा 5 से अधिक है या भुगतान क्रेडिट कार्ड से हुआ है, और फिर महिला ग्राहकों द्वारा किए गए ऑर्डरों के आधार पर फ़िल्टर होता है।
संबंधित तालिकाओं में COUNTIF()
यदि आप एक से अधिक तालिकाओं के साथ काम कर रहे हैं, तो आप RELATEDTABLE() फ़ंक्शन का उपयोग करके दूसरी तालिका में पूरी हुई शर्त के आधार पर COUNTROWS() या COUNTA() से रिकॉर्ड गिन सकते हैं।
RELATEDTABLE() फ़ंक्शन दो तालिकाओं के बीच मॉडल संबंध पर विचार करता है, जो एक-से-एक या एक-से-अनेक हो सकता है।
मान लें कि हमारे पास एक और बिक्री तालिका Sales2 है, जो उसी supermarket sales data का उपयोग करती है। और Sales और Sales2Invoice ID द्वारा संबंधित हैं।
Sales और Sales2 तालिका के बीच संबंध। चित्र: लेखक।
मान लें कि Sales में Customer type कॉलम नहीं है, लेकिन Sales2 में है। ऐसे में, यह देखने के लिए कि कितने ग्राहक सदस्य हैं, आप नीचे दिया गया DAX सिंटैक्स उपयोग कर सकते हैं।
Orders by members =
COUNTROWS(FILTER(RELATEDTABLE(Sales2), Sales2[Customer Type] = "Member"))संचालित द्वारा
सदस्य ग्राहकों द्वारा किए गए ऑर्डरों की संख्या। चित्र: लेखक।
RELATEDTABLE(Sales2) स्वतः ही Sales2 को इस तरह फ़िल्टर करता है कि उसमें केवल वे पंक्तियाँ शामिल हों जिनका Invoice IDSales डेटा में समान हो।
FILTER() फ़ंक्शन इसे आगे केवल "Member" ऑर्डरों तक सीमित करता है, जबकि COUNTROWS() फ़िल्टर की हुई तालिका को गिनता है।
व्यावहारिक उपयोग के मामले और इंटीग्रेशन टिप्स
यहाँ Power BI COUNTIF() लागू करने के कुछ व्यावहारिक उपयोग और इंटीग्रेशन टिप्स दिए गए हैं।
वास्तविक दुनिया के परिदृश्य
यदि आपके पास छात्र परिणामों या ऑर्डरों की तालिका है, तो आप दोहराए गए रिकॉर्डों की संख्या गिनने के लिए COUNTROWS() और FILTER() का उपयोग कर सकते हैं। उनके स्कोर कॉलम का उपयोग करके, आप यह भी गिन सकते हैं कि कितने छात्र पास या फेल हुए। एक और महत्वपूर्ण COUNTIF() समकक्ष हैSUMX(), जिसका उपयोग आप किसी शर्त के आधार पर छात्रों के स्कोर जोड़ने के लिए कर सकते हैं।
डेटा इंटीग्रेशन टूल्स
Excel या Google Sheets से अपनी स्प्रेडशीट फ़ाइल को हर बार विश्लेषण के लिए अपलोड करने के बजाय, आप Coupler.io जैसे टूल्स का उपयोग करके डेटा एक्स्ट्रैक्शन स्वचालित कर सकते हैं।
एक बार आपकी स्प्रेडशीट अपडेट हो जाने पर, यह अपने आप आपके Power BI डैशबोर्ड पर प्रतिबिंबित हो जाती है, आपको इसे मैन्युअली अपलोड करने की ज़रूरत नहीं पड़ती।
इससे सुनिश्चित होता है कि Power BI हमेशा नवीनतम डेटा दर्शाए, बिना मैन्युअली फ़ाइलें अपलोड किए—जिससे आप अंतर्दृष्टि निकालने और व्यावसायिक निर्णय लेने पर ध्यान केंद्रित कर सकें। आप इन बाहरी टूल्स का उपयोग करके कई स्रोतों को एक डैशबोर्ड में भी जोड़ सकते हैं।
पढ़ने में सुगमता और प्रदर्शन के लिए अनुभवजन्य टिप्स
जब गणनाएँ समेकन से पहले पंक्ति-स्तर पर करनी हों, तो हमेशा calculated columns का उपयोग करें। जब गणना उपयोगकर्ता-चयनित फ़िल्टरों या स्लाइसर पर निर्भर करती हो, या आपको पंक्ति-स्तर के बजाय किसी समेकित मान की आवश्यकता हो, तब आप measure का उपयोग कर सकते हैं।
फ़िल्टर संदर्भ को समझना यह जानने की कुंजी है कि कब measure या calculated column का उपयोग करें। फ़िल्टर संदर्भ तब लागू होता है जब स्लाइसर, फ़िल्टर, या समूह लागू हों, जबकि row context किसी तालिका की पंक्ति के भीतर लागू होता है। Calculated columns row context का उपयोग करते हैं और अनावश्यक कॉलम बना सकते हैं, जिससे मेमोरी उपयोग बढ़ता है।
Measures बनाते समय फ़िल्टर संदर्भ पर विचार करना भी महत्वपूर्ण है। उदाहरण के लिए, SUM(Sales[Amount]) की बजाय CALCULATE(SUM(Sales[Amount])) का उपयोग करें ताकि फ़िल्टरिंग को नियंत्रित किया जा सके। यदि आपके डेटा पर पहले से कोई फ़िल्टर लागू है, तो पहले वाला सही मान नहीं देगा, जबकि दूसरे का उपयोग करने पर डेटा पर लागू सभी फ़िल्टर नज़रअंदाज़ हो जाते हैं।
इसके अलावा, एक ही DAX सिंटैक्स में बहुत अधिक इटरेटर्स, जैसे FILTER(), का उपयोग करने से बचें, क्योंकि वे बड़े डेटासेट को धीमा कर देते हैं—क्योंकि वे डेटा पर पंक्ति-दर-पंक्ति इटरेट करते हैं।
निष्कर्ष
भले ही Excel का मूल COUNTIF() Power BI में अनुपस्थित है, CALCULATE(), COUNTROWS(), COUNTA(), और FILTER() जैसे DAX फ़ंक्शंस इसकी कार्यक्षमता दोहराना संभव बनाते हैं।
आपका तरीका आपके डेटा की प्रकृति पर निर्भर करता है। यदि आपके पास missing values हैं, तो COUNTA() का उपयोग करने पर विचार करें, लेकिन यदि आपका डेटा पूर्ण है, तो आप COUNTROWS() का उपयोग कर सकते हैं। डेटा पर लागू बाहरी फ़िल्टरों को बाहर रखने के लिए, सुनिश्चित करें कि आप CALCULATE() फ़ंक्शन के अंदर ALLEXCEPT() का उपयोग करें।
हमेशा ध्यान रखें कि आप किस तरह का DAX सिंटैक्स लिखते हैं, यह निर्धारित करता है कि आपके डैशबोर्ड पर विज़ुअल कितनी जल्दी लोड होते हैं। अनुकूलित DAX सिंटैक्स लिखने का प्रयास करें और जानें कि measures या calculated columns कब उपयोग करने हैं। उन्नत DAX तकनीकों का पता लगाने के लिए यहाँ कुछ DataCamp संसाधन दिए गए हैं।
अनुभवी डेटा साइंस प्रशिक्षक और बायोस्टैटिस्टिशियन, Python, R और मशीन लर्निंग में विशेषज्ञता के साथ।
Power BI Countif() प्रश्न
क्या Power BI में मूल COUNTIF() फ़ंक्शन है?⌄
Power BI में मूल COUNTIF() फ़ंक्शन नहीं है, लेकिन इसे Power BI में लागू करने के कई तरीके हैं।
Power BI में COUNTIF() लागू करने के लिए कौन-से फ़ंक्शंस हैं?⌄
Power BI में COUNTIF() लागू करने के मुख्य फ़ंक्शंस हैं CALCULATE(), COUNTROWS(), COUNTA(), FILTER(), ALLEXCEPT(), और RELATEDTABLE()। डेटा मॉडल के आधार पर, आप इन फ़ंक्शंस को मिलाकर Power BI में COUNTIF() लागू कर सकते हैं।
COUNTROWS() और COUNTA() में क्या अंतर है?⌄
COUNTROWS() पंक्ति में वैध रिकॉर्ड है या नहीं, इससे अलग रहते हुए डेटा की पंक्तियों की संख्या गिनता है, जबकि COUNTA() किसी कॉलम में वैध रिकॉर्डों की संख्या गिनता है।
Calculated columns पर measures का उपयोग करने का क्या लाभ है?⌄
Measures अधिक कुशल होते हैं और अधिक स्टोरेज का उपयोग नहीं करते क्योंकि वे ऑन-द-फ्लाई गणना होते हैं, जबकि calculated columns डेटा के आयाम बढ़ाते हैं और इस प्रकार स्टोरेज उपभोग करते हैं।
Power BI में COUNTIF() के व्यावहारिक अनुप्रयोग क्या हैं?⌄
Power BI COUNTIF() के कई उपयोग हैं—रिकॉर्डों की शर्तानुसार गणना करने से लेकर गणना के आधार पर शर्तानुसार कॉलम बनाना आदि।
Excel उपयोगकर्ताओं में
COUNTIF()लोकप्रिय है क्योंकि यह किसी शर्त के आधार पर डेटा की गणना करने देता है। हालांकि, Power BI पर आने पर कई उपयोगकर्ताओं ने देखा कि Power BI में मूलCOUNTIF()फ़ंक्शन नहीं है।अच्छी बात यह है कि उपयोगकर्ता विभिन्न DAX (Data Analysis Expressions) फ़ॉर्मूला का उपयोग करके
COUNTIF()जैसी कार्यक्षमता दोहरा सकते हैं। यह लेख बताएगा किCALCULATE(),COUNTROWS(),COUNTA(), औरFILTER()जैसे DAX फ़ंक्शंस का उपयोग करके Power BI मेंCOUNTIF()-जैसी गणनाएँ कैसे करें।Power BI में COUNTIF() क्यों मौजूद नहीं है
Excel जहाँ सेल-आधारित फ़ॉर्मूलों पर आधारित है, वहीं Power BI तालिका-आधारित गणनाओं और फ़िल्टर संदर्भ पर निर्मित है। यह तालिकाओं और उनके संबंधों पर कार्य करता है और गणना के लिए DAX का उपयोग करता है।
अलग-अलग कोशिकाओं को संदर्भित करने के बजाय, DAX कॉलम पर काम करता है और फ़िल्टर संदर्भ के आधार पर गतिशील रूप से गणनाएँ लागू करता है—जिसे स्लाइसर, पंक्ति/स्तंभ फ़िल्टर और टेबल संबंध निर्धारित करते हैं।
Excel COUNTIF() सेल-आधारित दृष्टिकोण अपनाता है, जहाँ फ़ॉर्मूले निर्धारित श्रेणी के भीतर पंक्ति-दर-पंक्ति लागू होते हैं। Power BI का तरीका अलग है क्योंकि यह तालिकाओं के बीच संबंधों का उपयोग करके गणनाओं को परिष्कृत करता है। अलग-अलग कोशिकाओं को स्कैन करने के बजाय, यह DAX का उपयोग करके रिपोर्ट संदर्भ के आधार पर फ़िल्टर लागू करता है।
उपयोगकर्ताओं के लिए निहितार्थ
Excel से आने वाले Power BI उपयोगकर्ता के रूप में, आपको गणना के लिए Power BI के तालिका-आधारित तरीके के साथ तालमेल बिठाना होगा। DAX दृष्टिकोण, जो डेटा के कॉलम पर कार्य करते हैं, पंक्ति-दर-पंक्ति दोहराव की तुलना में अधिक कुशल हैं।
Excel के विपरीत, Power BI उपयोगकर्ताओं को अपने डेटा मॉडल के अनुसार
COUNTIF()को दोहराने के लिए सबसे उपयुक्त तरीकों का चयन करना पड़ता है। इसलिए, एक उपयोगकर्ता के रूप में, आपको अलग-अलग कोशिकाओं पर फ़ॉर्मूले लगाने की आदत छोड़कर तालिकाओं और फ़िल्टर संदर्भ के संदर्भ में सोचना होगा।COUNTIF() लॉजिक दोहराने के लिए मुख्य DAX फ़ंक्शंस
Power BI में
COUNTIF()लागू करने का आपका तरीका ऐसे कारकों पर निर्भर करता है जैसे तालिकाओं के बीच संबंध, आपके डेटा में गायब मानों की उपस्थिति या अनुपस्थिति, डेटा का आकार, आदि। कुछ DAX फ़ंक्शंस तेज़ और अधिक कुशल प्रोसेसिंग के लिए बेहतर अनुकूलित होते हैं।मुख्य फ़ंक्शंस का अवलोकन
DAX फ़ंक्शंस का उपयोग calculated columns, measures, और tables बनाने के लिए किया जाता है। यहाँ कुछ DAX फ़ंक्शंस हैं जो Power BI में
COUNTIF()की कार्यक्षमता दोहराने में आपकी मदद करेंगे।CALCULATE(): यह फ़ंक्शन किसी अभिव्यक्ति के फ़िल्टर संदर्भ को संशोधित करने के लिए उपयोग होता है और नए फ़िल्टर लागू करने या मौजूदा फ़िल्टर को गतिशील रूप से संशोधित करने देता है। उदाहरण के लिए, आप किसी विशेष क्षेत्र के लिए कुल बिक्री की गणना करने हेतु इसका उपयोग कर सकते हैं।COUNTROWS(): यह दी गई तालिका में पंक्तियों की संख्या गिनता है, और आप इसे फ़िल्टरिंग फ़ंक्शंस के साथ मिलाकर विशिष्ट पंक्तियाँ गिन सकते हैं। उदाहरण के लिए, $1,000 से अधिक के बिक्री ऑर्डर गिनना।COUNTA(): यह फ़ंक्शन किसी कॉलम में non-blank मानों की गणना करता है और गायब डेटा से निपटने पर उपयोगी है। उदाहरण के लिए, आप non-blank customer IDs गिन सकते हैं ताकि केवल वैध रिकॉर्ड शामिल हों।FILTER(): आमतौर परCALCULATE()औरCOUNTROWS()के साथ उपयोग किया जाता है, यह किसी शर्त के आधार पर एक तालिका लौटाता है। उदाहरण के लिए, आप $500 से अधिक के बिक्री ऑर्डरों वाली तालिका लौटा सकते हैं।ALLEXCEPT(): यह निर्दिष्ट कॉलमों को छोड़कर लागू सभी फ़िल्टर हटा देता है; उदाहरण के लिए, आप स्लाइसर या टेबल फ़िल्टर लागू होने के बावजूद क्षेत्र अनुसार कुल बिक्री की तालिका लौटा सकते हैं। यह हायरार्की पर समेकन करते समय महत्वपूर्ण होता है।RELATEDTABLE(): मौजूदा संबंधों के आधार पर एक तालिका लौटाता है। उदाहरण के लिए, ग्राहक डेटा से संबंधों का उपयोग करके प्रत्येक ग्राहक के लिए बिक्री ऑर्डरों की संख्या गिनना।ये साथ में कैसे काम करते हैं
चूँकि
COUNTROWS()किसी तालिका में पंक्तियों की संख्या गिनता है, आपFILTER()का उपयोग करके अपने डेटा से ऐसी तालिका लौटा सकते हैं जो किसी शर्त को पूरा करती हो। फिर,CALCULATE()फ़ंक्शन का उपयोग करके फ़िल्टर संदर्भ संशोधित करें, ताकिCOUNTROWS()केवल उन्हीं पंक्तियों पर विचार करे जो शर्त से मेल खाती हैं। यहाँ एक DAX सिंटैक्स का उदाहरण है जो दिखाता है यह कैसे काम करता है।CALCULATE()फ़ंक्शन कुछ हद तक दो अलग-अलग अभिव्यक्तियों को जोड़ने जैसा है।COUNTROWS()से सारा डेटा गिनने के बजाय,CALCULATE()फ़ंक्शन इसेFILTER()फ़ंक्शन से प्राप्त फ़िल्टर संदर्भ तक सीमित कर देता है।Power BI में COUNTIF() समकक्षों के बुनियादी उदाहरण
Power BI में
COUNTIF()कैसे लागू करें, इसके कुछ उदाहरण दिखाने से पहले, सुनिश्चित करें कि आप supermarket sales data लोड कर लें।उदाहरण 1: महिला ग्राहकों द्वारा किए गए ऑर्डरों की संख्या
नीचे दिया गया DAX सिंटैक्स महिला ग्राहकों द्वारा किए गए ऑर्डरों की संख्या की गणना करता है।
महिला ग्राहकों द्वारा किए गए ऑर्डरों की संख्या। चित्र: लेखक।
FILTER(Sales, Sales[Gender] = "Female")महिला ग्राहकों के बिक्री ऑर्डरों को फ़िल्टर करता है।COUNTROWS(Sales)सारी डेटा पंक्तियों को गिनने के बजाय,CALCULATE()फ़ंक्शन के प्रभाव से फ़िल्टर की गई तालिका को गिनता है।उदाहरण 2: शहर के अनुसार ऑर्डरों की गणना
नीचे प्रत्येक शहर के लिए ऑर्डरों की संख्या गिनने का DAX सिंटैक्स दिया गया है।
शहर के अनुसार ऑर्डरों की संख्या। चित्र: लेखक।
COUNTA(Sales[City])सिटी कॉलम में non-blank मानों की संख्या गिनता है।ALLEXCEPT(Sales, Sales[City])Sales तालिका सेCityकॉलम को छोड़कर सभी फ़िल्टर हटा देता है।CALCULATE()सुनिश्चित करता है किCOUNTA()प्रत्येक शहर के लिए अलग-अलग गणना हो, जो Excel केCOUNTIF()जैसा व्यवहार करता है।उदाहरण 3: COUNTROWS का उपयोग करते हुए वैकल्पिक तरीका
एक और विकल्प नीचे दिया गया DAX सिंटैक्स है, जो
COUNTA()के बजायCOUNTROWS()का उपयोग करता है।COUNTROWS()Salesतालिका में पंक्तियों की संख्या गिनता है, भले ही ब्लैंक मौजूद हों या नहीं।यदि
Cityकॉलम खाली है, तो दोनों तरीके समान परिणाम देंगे। लेकिन यदिCityकॉलम में missing values हैं, तोCOUNTA()उन्हें बाहर रखता है, जबकिCOUNTROWS()उन्हें शामिल करता है।जब हर पंक्ति एक रिकॉर्ड का प्रतिनिधित्व करती है, जैसे कि बिक्री ऑर्डर, तो आपको
COUNTROWS()फ़ंक्शन का उपयोग करना चाहिए। लेकिन यदि आपके डेटा में कुछ अवैध प्रविष्टियाँ हैं, तो आपCOUNTA()का उपयोग कर सकते हैं, जो केवल वैध मान वाले रिकॉर्ड गिनता है।डायनेमिक गणनाओं के लिए Measures का उपयोग
ऐसी स्थितियाँ आती हैं जहाँ आपको ऐसे measures बनाने होते हैं जो टेबल फ़िल्टर या स्लाइसर के आधार पर गतिशील रूप से बदलते हैं। इस खंड में ऐसे परिदृश्यों में
COUNTIF()कैसे लागू करें, यह बताया गया है।परिदृश्य: उच्च-मूल्य वाले ऑर्डरों की गणना
यहाँ एक उदाहरण है जहाँ हम उन ऑर्डरों में रुचि रखते हैं जिनकी कुल मात्रा पाँच से अधिक है।
उच्च-मूल्य ऑर्डरों की संख्या। चित्र: लेखक।
FILTER(Sales, Sales[Quantity] > 5)वे बिक्री ऑर्डर लौटाता है जिनकी मात्रा पाँच से अधिक है।COUNTROWS()फ़िल्टर की गई तालिका की पंक्तियाँ गिनता है जिनके ऑर्डर पाँच से अधिक हैं।Calculated columns बनाने पर स्टोरेज और मॉडल आकार बढ़ता है, जबकि measures केवल आवश्यकता पड़ने पर गणना होते हैं, इसलिए वे अधिक कुशल हैं। Calculated column बनाने का DAX सिंटैक्स इस प्रकार होगा:
Calculated column
High Value। चित्र: लेखक।यह हर पंक्ति में स्थिर 1 या 0 संग्रहीत करेगा। उच्च-मूल्य वाले ऑर्डर गिनने के लिए, आपको
SUM(Sales[High Value])का उपयोग करते हुए एक measure बनाना होगा।कल्पना करें कि आप हर फ़िल्टर के लिए calculated columns बना रहे हैं। इससे स्टोरेज उपयोग बढ़ेगा और लचीलापन घटेगा।
यहाँ एक तालिका है जो दिखाती है कि आपको calculated columns के बजाय हमेशा measures का उपयोग क्यों विचार करना चाहिए।
Measure
Calculated Column
क्वेरी समय पर गणना, फ़िल्टरों पर प्रतिक्रिया
स्थिर, डेटा लोड/रिफ्रेश पर गणना
अधिक कुशल, केवल आवश्यकता पर गणना
स्टोरेज खपत करता है और मॉडल आकार बढ़ाता है
फ़िल्टर, स्लाइसर और विज़ुअल्स के आधार पर गतिशील रूप से समायोजित हो सकता है।
डेटा रिफ्रेश के बिना मान समान रहते हैं।
एडवांस्ड तकनीकें और बहु-शर्तें
Excel
COUNTIFS()बहु-शर्तों का समर्थन करता है, जिसे आप Power BI में भी दोहरा सकते हैं।एकाधिक मानदंड / COUNTIFS() लॉजिक
यहाँ DAX सिंटैक्स है जो पाँच से अधिक मात्रा और क्रेडिट कार्ड से भुगतान वाले ऑर्डरों की गणना करता है।
पाँच से अधिक मात्रा और क्रेडिट कार्ड से भुगतान वाले ऑर्डरों की संख्या। चित्र: लेखक।
ऊपर का फ़ॉर्मूला
Salesतालिका को फ़िल्टर करता है जहाँ ऑर्डर मात्रा 5 से अधिक है और भुगतान का तरीका क्रेडिट कार्ड है।&&AND ऑपरेटर को दर्शाता है, जो सुनिश्चित करता है कि दोनों शर्तें पूरी करने वाले ऑर्डर ही गिने जाएँ।जब आप केवल उन ऑर्डरों में रुचि रखते हैं जो किसी भी एक शर्त को पूरा करते हैं, तब OR ऑपरेटर का उपयोग होता है, जिसे DAX में
||से दर्शाया जाता है।ऐसे ऑर्डरों की संख्या जिनमें या तो मात्रा पाँच से अधिक है या क्रेडिट कार्ड से भुगतान हुआ है। चित्र: लेखक।
लॉजिकल ऑपरेटर और वेरिएबल्स का उपयोग
कभी-कभी
COUNTIF()को दोहराने वाला DAX सिंटैक्स जटिल हो सकता है। वेरिएबल्स का उपयोग करने से समझना आसान होता है और सुनिश्चित होता है कि शर्तें इच्छित क्रम में मूल्यांकित हों। यह मानों को एक बार संग्रहीत करके अनावश्यक गणनाओं से भी बचाता है।यहाँ एक और उदाहरण है जो दिखाता है कि वेरिएबल्स का उपयोग करके महिला ग्राहक द्वारा किए गए उन ऑर्डरों की संख्या कैसे गिनें जो या तो क्रेडिट कार्ड से भुगतान किए गए हों या पाँच से अधिक मात्रा वाले हों।
महिला ग्राहकों द्वारा किए गए ऑर्डरों की संख्या—या तो क्रेडिट कार्ड से भुगतान या मात्रा पाँच से अधिक। चित्र: लेखक।
फ़िल्टर को एक वेरिएबल में संग्रहीत किया गया है, जिसका उपयोग
COUNTROWS()फ़ंक्शन में होता है। ऊपर दी गई अभिव्यक्ति को लिखने का एक और तरीका यह हैइस बार, न्यूनतम मात्रा, फ़िल्टर और परिणाम—तीनों को वेरिएबल के रूप में संग्रहीत किया गया है। जैसे गणित में प्रसिद्ध BODMAS सिद्धांत, जो पहले कोष्ठक के अंदर की क्रियाओं को प्राथमिकता देता है, वैसे ही DAX भी कोष्ठक के भीतर की शर्तों को पहले प्राथमिकता देता है।
ऊपर के उदाहरण में, OR ऑपरेटर
||का मूल्यांकन AND ऑपरेटर&&से पहले होता है क्योंकि वह कोष्ठकों के अंदर है। इसका मतलब है कि पहले उन बिक्री ऑर्डरों को फ़िल्टर किया जाता है जिनमें मात्रा 5 से अधिक है या भुगतान क्रेडिट कार्ड से हुआ है, और फिर महिला ग्राहकों द्वारा किए गए ऑर्डरों के आधार पर फ़िल्टर होता है।संबंधित तालिकाओं में COUNTIF()
यदि आप एक से अधिक तालिकाओं के साथ काम कर रहे हैं, तो आप
RELATEDTABLE()फ़ंक्शन का उपयोग करके दूसरी तालिका में पूरी हुई शर्त के आधार परCOUNTROWS()याCOUNTA()से रिकॉर्ड गिन सकते हैं।RELATEDTABLE()फ़ंक्शन दो तालिकाओं के बीच मॉडल संबंध पर विचार करता है, जो एक-से-एक या एक-से-अनेक हो सकता है।मान लें कि हमारे पास एक और बिक्री तालिका
Sales2है, जो उसी supermarket sales data का उपयोग करती है। औरSalesऔरSales2Invoice IDद्वारा संबंधित हैं।SalesऔरSales2तालिका के बीच संबंध। चित्र: लेखक।मान लें कि
SalesमेंCustomer typeकॉलम नहीं है, लेकिनSales2में है। ऐसे में, यह देखने के लिए कि कितने ग्राहक सदस्य हैं, आप नीचे दिया गया DAX सिंटैक्स उपयोग कर सकते हैं।सदस्य ग्राहकों द्वारा किए गए ऑर्डरों की संख्या। चित्र: लेखक।
RELATEDTABLE(Sales2)स्वतः हीSales2को इस तरह फ़िल्टर करता है कि उसमें केवल वे पंक्तियाँ शामिल हों जिनकाInvoice IDSalesडेटा में समान हो।FILTER()फ़ंक्शन इसे आगे केवल"Member"ऑर्डरों तक सीमित करता है, जबकिCOUNTROWS()फ़िल्टर की हुई तालिका को गिनता है।व्यावहारिक उपयोग के मामले और इंटीग्रेशन टिप्स
यहाँ Power BI
COUNTIF()लागू करने के कुछ व्यावहारिक उपयोग और इंटीग्रेशन टिप्स दिए गए हैं।वास्तविक दुनिया के परिदृश्य
यदि आपके पास छात्र परिणामों या ऑर्डरों की तालिका है, तो आप दोहराए गए रिकॉर्डों की संख्या गिनने के लिए
COUNTROWS()औरFILTER()का उपयोग कर सकते हैं। उनके स्कोर कॉलम का उपयोग करके, आप यह भी गिन सकते हैं कि कितने छात्र पास या फेल हुए। एक और महत्वपूर्णCOUNTIF()समकक्ष है SUMX(), जिसका उपयोग आप किसी शर्त के आधार पर छात्रों के स्कोर जोड़ने के लिए कर सकते हैं।डेटा इंटीग्रेशन टूल्स
Excel या Google Sheets से अपनी स्प्रेडशीट फ़ाइल को हर बार विश्लेषण के लिए अपलोड करने के बजाय, आप Coupler.io जैसे टूल्स का उपयोग करके डेटा एक्स्ट्रैक्शन स्वचालित कर सकते हैं।
एक बार आपकी स्प्रेडशीट अपडेट हो जाने पर, यह अपने आप आपके Power BI डैशबोर्ड पर प्रतिबिंबित हो जाती है, आपको इसे मैन्युअली अपलोड करने की ज़रूरत नहीं पड़ती।
इससे सुनिश्चित होता है कि Power BI हमेशा नवीनतम डेटा दर्शाए, बिना मैन्युअली फ़ाइलें अपलोड किए—जिससे आप अंतर्दृष्टि निकालने और व्यावसायिक निर्णय लेने पर ध्यान केंद्रित कर सकें। आप इन बाहरी टूल्स का उपयोग करके कई स्रोतों को एक डैशबोर्ड में भी जोड़ सकते हैं।
पढ़ने में सुगमता और प्रदर्शन के लिए अनुभवजन्य टिप्स
जब गणनाएँ समेकन से पहले पंक्ति-स्तर पर करनी हों, तो हमेशा calculated columns का उपयोग करें। जब गणना उपयोगकर्ता-चयनित फ़िल्टरों या स्लाइसर पर निर्भर करती हो, या आपको पंक्ति-स्तर के बजाय किसी समेकित मान की आवश्यकता हो, तब आप measure का उपयोग कर सकते हैं।
फ़िल्टर संदर्भ को समझना यह जानने की कुंजी है कि कब measure या calculated column का उपयोग करें। फ़िल्टर संदर्भ तब लागू होता है जब स्लाइसर, फ़िल्टर, या समूह लागू हों, जबकि row context किसी तालिका की पंक्ति के भीतर लागू होता है। Calculated columns row context का उपयोग करते हैं और अनावश्यक कॉलम बना सकते हैं, जिससे मेमोरी उपयोग बढ़ता है।
Measures बनाते समय फ़िल्टर संदर्भ पर विचार करना भी महत्वपूर्ण है। उदाहरण के लिए,
SUM(Sales[Amount])की बजायCALCULATE(SUM(Sales[Amount]))का उपयोग करें ताकि फ़िल्टरिंग को नियंत्रित किया जा सके। यदि आपके डेटा पर पहले से कोई फ़िल्टर लागू है, तो पहले वाला सही मान नहीं देगा, जबकि दूसरे का उपयोग करने पर डेटा पर लागू सभी फ़िल्टर नज़रअंदाज़ हो जाते हैं।इसके अलावा, एक ही DAX सिंटैक्स में बहुत अधिक इटरेटर्स, जैसे
FILTER(), का उपयोग करने से बचें, क्योंकि वे बड़े डेटासेट को धीमा कर देते हैं—क्योंकि वे डेटा पर पंक्ति-दर-पंक्ति इटरेट करते हैं।निष्कर्ष
भले ही Excel का मूल
COUNTIF()Power BI में अनुपस्थित है,CALCULATE(),COUNTROWS(),COUNTA(), औरFILTER()जैसे DAX फ़ंक्शंस इसकी कार्यक्षमता दोहराना संभव बनाते हैं।आपका तरीका आपके डेटा की प्रकृति पर निर्भर करता है। यदि आपके पास missing values हैं, तो
COUNTA()का उपयोग करने पर विचार करें, लेकिन यदि आपका डेटा पूर्ण है, तो आपCOUNTROWS()का उपयोग कर सकते हैं। डेटा पर लागू बाहरी फ़िल्टरों को बाहर रखने के लिए, सुनिश्चित करें कि आपCALCULATE()फ़ंक्शन के अंदरALLEXCEPT()का उपयोग करें।हमेशा ध्यान रखें कि आप किस तरह का DAX सिंटैक्स लिखते हैं, यह निर्धारित करता है कि आपके डैशबोर्ड पर विज़ुअल कितनी जल्दी लोड होते हैं। अनुकूलित DAX सिंटैक्स लिखने का प्रयास करें और जानें कि measures या calculated columns कब उपयोग करने हैं। उन्नत DAX तकनीकों का पता लगाने के लिए यहाँ कुछ DataCamp संसाधन दिए गए हैं।