नीचे दिए गए समाधान में एक मैक्रो शामिल है, जो आपके टैग के अनुसार, वह समाधान नहीं है जो आप चाहते हैं। हालाँकि, यह वर्कशीट फ़ंक्शंस का उपयोग करता है और आप 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