CSV से सबसे हाल की पंक्ति का चयन करने के लिए Excel का उपयोग करें?


0

मेरे पास एक सीएसवी है जो एक तिथि / समय क्षेत्र के साथ शुरू होता है और मुझे आयात करने की आवश्यकता है, और सबसे हाल की पंक्ति का चयन करें और इसे अपने सूत्रों में देखें।

मैं पिवट टेबल्स के साथ प्रयोग कर रहा हूं, और अभी रैंक और वील्कप।

सबसे हाल की पंक्ति तक पहुंचने और इसे निश्चित स्थान पर सहेजने के बारे में सबसे अच्छा तरीका क्या है?


क्या आप कह रहे हैं कि प्रत्येक पंक्ति दिनांक / समय क्षेत्र से शुरू होती है? साथ ही, कालानुक्रमिक क्रम में पंक्तियाँ हैं?
वॉल्ट रिटशर

हां, इसकी शुरुआत डेट टाइम फील्ड से होती है। पंक्तियों को क्रमबद्ध करना होगा; हालाँकि मुझे इसके लिए vbscript का उपयोग करना पड़ सकता है।
technology_is_overrated

जवाबों:


0

नीचे दिए गए समाधान में एक मैक्रो शामिल है, जो आपके टैग के अनुसार, वह समाधान नहीं है जो आप चाहते हैं। हालाँकि, यह वर्कशीट फ़ंक्शंस का उपयोग करता है और आप CSV आयात की प्रकृति के आधार पर वर्कशीट समाधान बनाने में सक्षम हो सकते हैं।

मुझे उम्मीद है कि इन समाधानों में से एक या अन्य आपके लिए काम करता है।

नोट: न तो समाधान डेटा को सॉर्ट किए जाने पर निर्भर करता है।

VBA समाधान की व्याख्या और समतुल्य संभव वर्कशीट

समाधान में कदम हैं:

डेटा की निचली पंक्ति ज्ञात कीजिए। VBA का कीबोर्ड समतुल्य है: कॉलम A के नीचे जाएं और फिर पहले गैर-खाली सेल पर जाएं। हालाँकि, आपको इस चरण के समतुल्य वर्कशीट की आवश्यकता नहीं हो सकती है।

मैं अगले कथनों के समतुल्य वर्कशीट के बारे में नहीं सोच सकता हूँ जो डेट स्ट्रिंग्स को डेट नंबरों में बदल देती है। यदि आपका आयात आपके लिए यह रूपांतरण करता है तो यह रूपांतरण आवश्यक नहीं होगा।

अगला कदम कॉलम ए में अधिकतम मूल्य का पता लगाना है। एक्सेल तिथियां संख्याएं हैं इसलिए मैक्स आपके लिए ऐसा करेगा। यदि आप जानते हैं कि आपके द्वारा उपयोग की जा सकने वाली 2000 से अधिक पंक्तियाँ कभी नहीं होंगी:

=MAX(A2:A2000)

अंतिम चरण अधिकतम मूल्य के लिए पंक्ति की पहचान करना है। यदि अधिकतम मान सेल X1 में है तो:

=1 + MATCH(X1,A2:A2000,0)

इस चरण के बराबर कीबोर्ड है।

VBA समाधान

Option Explicit
Sub FindLatestDate()

  Dim DateCol() As Variant
  Dim DateMax As Date
  Dim RngData As String
  Dim RowDateMax As Integer
  Dim RowMax As Integer

  With Sheets("Sheet2")

    RowMax = .Cells(Rows.Count, "A").End(xlUp).Row  ' Find bottom column of data.
    RngData = "A2:A" & RowMax                       'Assume first data row is 2.

    ' If column A contains strings that Excel can correctly
    ' interpret as dates, force Excel to do so.
    DateCol = .Range(RngData).Value
    .Range(RngData).Value = DateCol

    ' Excel dates are integer values.  Excel date/times are real values.
    ' Get the maximum value in the range.
    DateMax = Application.WorksheetFunction.Max(.Range(RngData))

    ' The use of CLng assumes the date does not include a time.
    ' Use CDbl if the date does include a time
    RowDateMax = 1 + _
       Application.WorksheetFunction.Match(CLng(DateMax), .Range(RngData), 0)

    ' RowDateMax gives you the value you seek.
    ' This code does not rely on the CSV being in date order

  End With

End Sub
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.