विषय-सूची
लगभग हर Power Query प्रशिक्षण में, जब हम बनाए गए प्रश्नों को अद्यतन करने का तरीका सीखते हैं और लोग देखते हैं कि अद्यतन करते समय नया डेटा पुराने डेटा को कैसे बदल देता है, तो श्रोताओं में से एक मुझसे पूछता है: “क्या यह सुनिश्चित करना संभव है कि अद्यतन करते समय, पुराना डेटा है भी कहीं सहेजे गए थे और संपूर्ण अद्यतन इतिहास दिखाई दे रहा था?
यह विचार नया नहीं है और इसका मानक उत्तर "नहीं" होगा - पुराने डेटा को नए के साथ बदलने के लिए पावर क्वेरी को डिफ़ॉल्ट रूप से कॉन्फ़िगर किया गया है (जो कि अधिकांश मामलों में आवश्यक है)। हालाँकि, यदि आप वास्तव में चाहते हैं, तो आप इस सीमा को पार कर सकते हैं। और विधि, जैसा कि आप बाद में देखेंगे, बहुत सरल है।
निम्नलिखित उदाहरण पर विचार करें।
आइए मान लें कि हमारे पास क्लाइंट से इनपुट डेटा के रूप में एक फ़ाइल है (चलिए इसे कॉल करें, मान लें, स्रोत) उन उत्पादों की सूची के साथ जिन्हें वह "स्मार्ट" डायनेमिक टेबल के रूप में खरीदना चाहता है आवेदन:
किसी अन्य फ़ाइल में (चलिए इसे सादृश्य द्वारा कहते हैं रिसीवर) हम स्रोत से उत्पादों के साथ एक तालिका आयात करने के लिए एक सरल क्वेरी बनाते हैं डेटा - डेटा प्राप्त करें - फ़ाइल से - एक्सेल वर्कबुक से (डेटा — डेटा प्राप्त करें — फ़ाइल से — Excel कार्यपुस्तिका से) और परिणामी तालिका को शीट पर अपलोड करें:
यदि भविष्य में ग्राहक अपनी फ़ाइल में आदेश में परिवर्तन करने का निर्णय लेता है स्रोत, फिर हमारे अनुरोध को अपडेट करने के बाद (राइट-क्लिक करके या के माध्यम से) डेटा - सभी को ताज़ा करें) हम फ़ाइल में नया डेटा देखेंगे रिसीवर - सभी मानक।
अब आइए सुनिश्चित करें कि अपडेट करते समय, पुराने डेटा को नए लोगों द्वारा प्रतिस्थापित नहीं किया जाता है, लेकिन नए को पुराने के साथ जोड़ दिया जाता है - और एक तिथि-समय के अतिरिक्त, ताकि यह देखा जा सके कि ये विशिष्ट परिवर्तन कब हुए थे बनाया गया।
चरण 1. मूल क्वेरी में दिनांक-समय जोड़ना
आइए एक अनुरोध खोलें आवेदनसे हमारा डेटा आयात करना स्रोत, और इसमें अद्यतन के दिनांक-समय के साथ एक कॉलम जोड़ें। ऐसा करने के लिए, आप बटन का उपयोग कर सकते हैं कस्टम कॉलम टैब एक कॉलम जोड़ना (कॉलम जोड़ें — कस्टम कॉलम), और फिर फ़ंक्शन दर्ज करें डेटटाइम।लोकल नाउ - फ़ंक्शन का एनालॉग टीडीएटीए (अब) माइक्रोसॉफ्ट एक्सेल:
क्लिक करने के बाद OK आपको इस तरह के एक सुंदर कॉलम के साथ समाप्त होना चाहिए (कॉलम हेडर में आइकन के साथ इसके लिए दिनांक-समय प्रारूप सेट करना न भूलें):
यदि आप चाहते हैं, तो इस कॉलम के लिए शीट पर अपलोड की गई प्लेट के लिए, आप अधिक सटीकता के लिए सेकंड के साथ दिनांक-समय प्रारूप सेट कर सकते हैं (आपको मानक प्रारूप में एक कोलन और "एसएस" जोड़ना होगा):
चरण 2: पुराने डेटा के लिए क्वेरी
अब एक और क्वेरी बनाते हैं जो एक बफर के रूप में कार्य करेगा जो अपडेट करने से पहले पुराने डेटा को सहेजता है। फ़ाइल में परिणामी तालिका के किसी भी सेल का चयन करना रिसीवर, टैब पर चयन करें जानकारी आदेश टेबल/रेंज से (डेटा - टेबल/रेंज से) or पत्तों के साथ (शीट से):
हम Power Query में लोड की गई तालिका के साथ कुछ नहीं करते हैं, हम क्वेरी कहते हैं, उदाहरण के लिए, पुराना डेटा और प्रेस होम — बंद करें और लोड करें — बंद करें और इसमें लोड करें… — केवल कनेक्शन बनाएं (होम - बंद करें और लोड करें - बंद करें और लोड करें ... - केवल कनेक्शन बनाएं).
चरण 3. पुराने और नए डेटा को जोड़ना
अब वापस हमारे मूल प्रश्न पर आवेदन और कमांड के साथ पिछले बफर अनुरोध से पुराने डेटा के नीचे से इसे जोड़ें होम — अनुरोध जोड़ें (होम - प्रश्न जोड़ें):
बस इतना ही!
इसके माध्यम से एक्सेल में वापस आना बाकी है होम - बंद करें और डाउनलोड करें (होम - बंद करें और लोड करें) और बटन के साथ हमारी पूरी संरचना को अपडेट करने के लिए दो बार प्रयास करें सभी अद्यतन टैब जानकारी (डेटा - सभी को ताज़ा करें). प्रत्येक अद्यतन के साथ, नया डेटा पुराने डेटा को प्रतिस्थापित नहीं करेगा, बल्कि संपूर्ण अद्यतन इतिहास को ध्यान में रखते हुए इसे नीचे धकेल देगा:
किसी भी बाहरी स्रोत (इंटरनेट साइट, डेटाबेस, बाहरी फ़ाइलें, आदि) से आयात करते समय एक समान चाल का उपयोग किया जा सकता है, यदि आपको इसकी आवश्यकता हो तो इतिहास के लिए पुराने मूल्यों को रखने के लिए।
- एकाधिक डेटा श्रेणियों में पिवट तालिका
- Power Query का उपयोग करके विभिन्न फ़ाइलों से तालिकाओं को असेंबल करना
- पुस्तक की सभी शीटों से डेटा को एक तालिका में एकत्रित करना