कभी-कभी ऐसी स्थितियां होती हैं जब यह पहले से ज्ञात नहीं होता है कि स्रोत डेटा से कितनी और किन पंक्तियों को आयात करने की आवश्यकता है। मान लीजिए कि हमें टेक्स्ट फ़ाइल से डेटा को पावर क्वेरी में लोड करना है, जो पहली नज़र में, एक बड़ी समस्या पेश नहीं करता है। कठिनाई यह है कि फ़ाइल नियमित रूप से अपडेट की जाती है, और कल इसमें डेटा के साथ अलग-अलग संख्या में लाइनें हो सकती हैं, तीन का हेडर, दो पंक्तियों का नहीं, आदि:
यही है, हम पहले से निश्चित रूप से नहीं कह सकते कि किस लाइन से शुरू करके और कितनी लाइनों को आयात करने की आवश्यकता है। और यह एक समस्या है, क्योंकि ये पैरामीटर अनुरोध के एम-कोड में हार्ड-कोडेड हैं। और यदि आप पहली फ़ाइल के लिए अनुरोध करते हैं (चौथी से शुरू होने वाली 5 लाइनें आयात करना), तो यह दूसरी फ़ाइल के साथ सही ढंग से काम नहीं करेगी।
यह बहुत अच्छा होगा यदि हमारी क्वेरी आयात के लिए "फ़्लोटिंग" टेक्स्ट ब्लॉक की शुरुआत और अंत स्वयं निर्धारित कर सके।
मैं जिस समाधान का प्रस्ताव करना चाहता हूं वह इस विचार पर आधारित है कि हमारे डेटा में कुछ कीवर्ड या मान हैं जिनका उपयोग हमें आवश्यक डेटा ब्लॉक की शुरुआत और अंत के मार्कर (सुविधाओं) के रूप में किया जा सकता है। हमारे उदाहरण में, शुरुआत शब्द से शुरू होने वाली एक पंक्ति होगी SKU, और अंत शब्द के साथ एक पंक्ति है कुल. सशर्त कॉलम का उपयोग करके पावर क्वेरी में इस पंक्ति सत्यापन को लागू करना आसान है - फ़ंक्शन का एक एनालॉग IF (अगर) • माइक्रोसॉफ्ट एक्सेल।
आइए देखें कि यह कैसे करना है।
सबसे पहले, हमारी टेक्स्ट फ़ाइल की सामग्री को मानक तरीके से Power Query में लोड करते हैं - कमांड के माध्यम से डेटा - डेटा प्राप्त करें - फ़ाइल से - टेक्स्ट/सीएसवी फ़ाइल से (डेटा - डेटा प्राप्त करें - फ़ाइल से - टेक्स्ट/सीएसवी फ़ाइल से). यदि आपके पास Power Query एक अलग ऐड-इन के रूप में स्थापित है, तो संबंधित आदेश टैब पर होंगे पावर क्वेरी:
हमेशा की तरह, आयात करते समय, आप कॉलम विभाजक वर्ण (हमारे मामले में, यह एक टैब है) का चयन कर सकते हैं, और आयात करने के बाद, आप स्वचालित रूप से जोड़े गए चरण को हटा सकते हैं संशोधित प्रकार (परिवर्तित प्रकार), क्योंकि कॉलम के लिए डेटा प्रकार निर्दिष्ट करना हमारे लिए बहुत जल्दी है:
अब कमांड के साथ एक कॉलम जोड़ना - सशर्त कॉलम (कॉलम जोड़ें - सशर्त कॉलम)आइए दो स्थितियों की जाँच के साथ एक कॉलम जोड़ें - ब्लॉक की शुरुआत और अंत में - और प्रत्येक मामले में किसी भी अलग मान को प्रदर्शित करना (उदाहरण के लिए, संख्याएं) 1 и 2) यदि कोई भी शर्त पूरी नहीं होती है, तो आउटपुट रिक्त:
क्लिक करने के बाद OK हमें निम्नलिखित चित्र मिलता है:
अब चलिए टैब पर चलते हैं। परिवर्तन और एक टीम चुनें नीचे भरें (रूपांतरण - भरण - नीचे) - हमारे और जुड़वाँ कॉलम को नीचे खींचेंगे:
ठीक है, फिर, जैसा कि आप अनुमान लगा सकते हैं, आप केवल सशर्त कॉलम में इकाइयों को फ़िल्टर कर सकते हैं - और यहां हमारा प्रतिष्ठित डेटा है:
जो कुछ बचा है वह कमांड के साथ हेडर की पहली पंक्ति को ऊपर उठाना है हेडर के रूप में पहली पंक्ति का प्रयोग करें टैब होम (होम - हेडर के रूप में पहली पंक्ति का प्रयोग करें) और अनावश्यक अधिक सशर्त कॉलम को उसके हेडर पर राइट-क्लिक करके और कमांड का चयन करके हटा दें कॉलम हटाएं (कॉलम हटाएं):
समस्या हल हो गई। अब, स्रोत टेक्स्ट फ़ाइल में डेटा बदलते समय, क्वेरी अब स्वतंत्र रूप से हमारे द्वारा आवश्यक डेटा के "फ़्लोटिंग" खंड की शुरुआत और अंत का निर्धारण करेगी और हर बार सही संख्या में लाइनों को आयात करेगी। बेशक, यह दृष्टिकोण एक्सएलएसएक्स आयात करने के मामले में भी काम करता है, न कि TXT फाइलों के साथ-साथ एक फ़ोल्डर से सभी फाइलों को एक बार कमांड के साथ आयात करते समय भी। डेटा - डेटा प्राप्त करें - फ़ाइल से - फ़ोल्डर से (डेटा - डेटा प्राप्त करें - फ़ाइल से - फ़ोल्डर से).
- Power Query का उपयोग करके विभिन्न फ़ाइलों से तालिकाओं को असेंबल करना
- मैक्रोज़ और पावर क्वेरी के साथ क्रॉसस्टैब को फ्लैट में फिर से डिज़ाइन करना
- पावर क्वेरी में प्रोजेक्ट गैंट चार्ट बनाना