Excel Misaligned Timestamps -


[संपादित]

मेरे पास एक्सेल कार्यपुस्तिका (.xlsx) है दो कार्यपत्रकों के साथ (शीट 1 और शीट 2) शीट 1 में डेटा के 7 कॉलम हैं (प्रत्येक के बारे में 70k पंक्तियों के साथ) जबकि शीट 2 में केवल 5 कॉलम हैं जिसमें लगभग 250-500 पंक्तियाँ हैं। प्रत्येक पत्रक का पहला कॉलम उस समय का एक टाइमस्टैम्प होता है जब प्रारूप में प्रारूप एकत्र किया जाता है (yyyy-mm-dd_hh: mm: ss)।

विसंगति यह है कि शीट 1 के डेटा में डेटा बिंदु अंतर है 8 सेकंड के अंतराल पर शीट 2, हालांकि, छिटपुट डेटा प्रविष्टियां हैं। विस्फोट में होने वाली 4 या 5 प्रविष्टियां हो सकती हैं (5 सेकंड का अंतराल कहते हैं) और फिर कुछ और घंटे के लिए कोई अन्य प्रविष्टि नहीं हो सकती।

मुझे क्या करना है, शीट 2 को फिर से संगठित करना है ताकि टाइमस्टैम्प शीट 1 के साथ संरेखित करें। इसका कारण यह है कि जब मैं चादर 1 में डेटा ग्राफ़ करता हूं, तो दृश्य उचित लगता है क्योंकि डेटा है समान रूप से पूरे स्थान पर। हालांकि, मैं शीट 2 में डेटा को उसी तरह ग्राफ़ नहीं कर सकता क्योंकि डेटा अंक छिटपुट अंतराल पर होते हैं।

मैं सी # में सहज हूं और एक प्रोग्राम बनाने की कोशिश कर रहा हूं जो एक सीएसवी फ़ाइल में पढ़ा जाएगा प्रत्येक शीट का और बैच प्रसंस्करण करते हैं ... लेकिन यहां तक ​​कि मैं कुछ ठीक नहीं रहा हूँ कि उचित प्रक्रिया क्या होगी। क्या ऐसा कोई तरीका है जिसे Excel में सीधे नियंत्रित किया जा सकता है? किसी भी सलाह का स्वागत किया जाएगा।

थोड़ा पृष्ठभूमि मैंने इसे तीन चादरों पर परीक्षण किया। पहले शीट में 100-सेकंड की तिथियां 8-सेकंड के अंतराल हैं। द्वितीय शीट, मेरे पास 300 डेटा बिंदु के 5 कॉलम हैं, जिसमें पहले कॉलम में छिटपुट अंतराल के साथ तारीखें होती हैं। मैंने दूसरी शीट का मिलान करने का निर्णय लिया है ताकि मेरा परीक्षण परीक्षण प्रयोजनों के लिए एक तीसरी शीट में हो।

हमारा तर्क हमारे लक्ष्य की तारीख से सबसे कम मूल्य का पता लगा रहा है। इस तरह, हम इस स्थित तिथि और अगले एक के बीच 8 सेकंड के अंदर हैं। फिर हम उस चादर को पहली शीट से प्राप्त करते हैं, फिर हम उस पंक्ति को हमारे परिणाम शीट में उसी पंक्ति संख्या के रूप में उपयोग करते हैं। इसके बाद हम परिणाम शीट में दूसरी शीट से उचित पंक्ति तक "स्थानांतरण" मान लेते हैं।

रनटाइम मेरे मशीन पर नगण्य है उम्मीद है, यह आपके लिए अच्छी तरह से ठीक से चलाता है। कृपया अपनी कार्यपुस्तिका की एक प्रति पर परीक्षण करें।

  उप संरेखित करें () Dim RefWS वर्कशीट के रूप में, ListWS वर्कशीट के रूप में, वर्कशीट मंद के रूप में ResWS RngOne के रूप में रेंज, RngTwo के रूप में रेंज मंद RngVal संस्करण, Elem संस्करण मंद LRowOne लांग के रूप में, LRowTwo लांग के रूप में, LRowThree लांग मंद LocRow लांग के रूप में, लंबे समय से मंद PopRng के रूप में सीमा के रूप में RowCt, StartRow के रूप में लंबे समय ThisWorkbook सेट के साथ के रूप में के रूप में के रूप में RefWS = .Sheets ("शीट 1") 'आवश्यकतानुसार संशोधित करें सूची WWS सेट करें .Sheets ("Sheet2") 'आवश्यकतानुसार संशोधित करें ResWS = सेट करें। शीट ("शीट 3") 'आवश्यकतानुसार संशोधित करें .End (xlUp) .Row LRowTwo = ListWS.Range ( 'ए' में & amp; Rows.Count); के साथ LRowOne = RefWS.Range (Rows.Count 'ए' & amp) समाप्त .End (xlUp) .Row 'करना सुनिश्चित करें आपके शीर्षकों या नहीं के आधार पर परिवर्तन के आधार पर परिवर्तन सेट करें RngOne = RefWS.Range ("A1: A" और LRowOne) 'आवश्यकतानुसार संशोधित करें सेट करें RngTwo = ListWS.Range ("A1: A" और LRowTwo) 'आवश्यकतानुसार संशोधित करें RngVal = RngTwo.Value 'रोचेट को 2 में बदलें यदि आपके पास हेडर हैं RowCt = 1 RngVal LocRow = Application.Match में प्रत्येक Elem (CDbl (ELEM), RngOne, 1) ResWS.Range ( 'ए' में & amp; LocRow & amp; ": ई" & amp; LocRow) के लिए .Value = ListWS.Range ( "ए" और "रॉ" और ": ई" और रोचेटी)। वेल्यू रोकटी = राव सीटी + 1 अगला एलेम 'ऑटोप्पुलेट .End (xlUp) .Row Do StartRow = .Range ( 'ए' में & amp; LRowThree); ResWS LRowThree = .Range (Rows.Count 'ए' & amp) के साथ .End (xlUp) .Row StartRow & gt हैं; 1 तब StartRow = StartRow + 1 सेट PopRng = .Range ( 'ए' में & amp; StartRow & amp; ": ई" & amp; LRowThree) .Range ( 'ए' में & amp; LRowThree & amp; ": ई" & amp; LRowThree) .Copy PopRng.PasteSpecial xlPasteValues ​​LRowThree = StartRow - 1 लूप तक Application.CutCopyMode = झूठी End Sub  के साथ StartRow = 1 अंत 

यह भी महत्वपूर्ण है कि दो मानों मिलान किया जाता है, तो यह हो रहा है है निकटतम एक के बजाय नवीनतम मान मुझे यह बताएं कि यह चलाने के बाद आपके डेटा का क्या होता है।

संपादित करें: कोड चैट के अनुसार अपडेट किया गया है।


Comments