আমি কীভাবে এক্সেলে একটি মানহীন তারিখের ফর্ম্যাটটি পার্স করব?


24

আমি বিন্যাসে তারিখ মত স্ট্রিং মূল্যবোধের একটি কলাম আছে yyyy-mm-ddযেমন 2011-Sep-13। আমাকে এগুলিকে এক্সেল তারিখের ক্রমিক সংখ্যায় রূপান্তর করতে হবে যাতে আমি তাদের সূত্রগুলিতে ব্যবহার করতে পারি।

DATEVALUE এই ফর্ম্যাটটি সনাক্ত করতে সক্ষম নয়; আমি #VALUE!চেষ্টা করার সময় আমি পেতে পারি। এটি কোনও কাস্টম তারিখের ফর্ম্যাটও নেয় না (বেশিরভাগ প্রোগ্রামিং ভাষার থেকে আলাদা)।

আমি কীভাবে স্বেচ্ছাচারিত তারিখের ফর্ম্যাটগুলিকে এক্সেল তারিখের মানগুলিতে রূপান্তর করতে পারি?

উত্তর:


21

আপনাকে স্ট্রিং পার্সিং করতে হবে, তারপরে একটি উপযুক্ত বিন্যাসিত মানটি পাস DATEVALUEকরতে হবে - এরকম কিছু:

=DATEVALUE(RIGHT(A1,2)&"-"&MID(A1,6,3)&"-"&LEFT(A1,4))

(সম্পাদনা করুন: আপডেট করা ফর্মুলা - পরীক্ষিত এবং এটি আমার জন্য একটি উদাহরণে কাজ করে - আপনার ইনপুটের উপর নির্ভর করে সংশোধন করার প্রয়োজন হতে পারে)


1
+1: আপনি ক্লিপবোর্ডে এটি প্রস্তুত ছিলাম যখন আপনি পোস্ট করেছেন: = তারিখভাল (সঠিক (এ 1,2) এবং এমআইডি (এ 1, ফাইন্ড ("-", এ 1)), 5) এবং এমআইডি (এ 1, 3,2))
এক্সেলেল

হেই, আমি কখনই কেবল বিটগুলি পুনরায় সাজানোর কথা ভাবি নি। ধন্যবাদ!
ক্রেগ ওয়াকার

2
8 বছর এবং একাধিক এক্সেল সংস্করণ পরে, এটি এখনও সবচেয়ে প্রাসঙ্গিক উত্তর! আমি আশা করি এক্সেল কোনও ফাংশন সরবরাহ করতে পারেPARSEDATE([string_value], [date format])
মনু মঞ্জুনাথ

5

মনে রাখবেন যে মাসের নামগুলি উইন্ডোজ আঞ্চলিক বিকল্পগুলি নির্দিষ্ট। সুতরাং, যদি আপনার উইন্ডোজ আঞ্চলিক বিকল্পগুলি ইউক্রেনীয়তে সেট করা থাকে, তবে DATEVALUE ফিরে আসবে # VALUE! "07-নভেম্বর-2012" এর জন্য, তবে "07-Лис-2012" গ্রহণ করবে।


1
খুব খুব গুরুত্বপূর্ণ নোট !! এটি অত্যন্ত দুঃখের বিষয় যে এক্সেল
দু'টি

1

ডেটভ্যালু ফাংশনটি অঞ্চল নির্ভর। আপনি যদি ইউরোপে "04-11-2008" এর মতো একটি স্ট্রিং পার্স করেন যা নভেম্বর 4 র্থ হিসাবে এবং যুক্তরাষ্ট্রে 11 এপ্রিল হিসাবে পার্স করা হবে।

এটি ঘুরে দেখার জন্য আপনি ডেটরিশিয়াল ফাংশনটি ব্যবহার করতে পারেন এবং নিজেই পার্সিং করতে পারেন। এটি সহজেই আপনার নিজের অ-মানক তারিখ বিন্যাসের সাথে মানিয়ে নেওয়া যায়।

' Region independent date parsing
' Expects a datetimestr in the format  "04-11-2008 21:39:39"
' The function VBA.DateTime.DateValue() mixes up the date and month in different regions
Function parseDateTime(dateTimeStr As String) As Date

    Dim parts As Variant
    parts = VBA.Strings.Split(dateTimeStr, " ")

    Dim datePart As String, timePart As String
    datePart = parts(0)
    timePart = parts(1)

    Dim dateParts As Variant, day As Integer, month As Integer, year As Integer
    dateParts = VBA.Strings.Split(datePart, "-")
    day = dateParts(0)
    month = dateParts(1)
    year = dateParts(2)

    Dim parsed_date As Date, parsed_time As Date
    parsed_date = VBA.DateTime.DateSerial(year, month, day)
    parsed_time = VBA.DateTime.TimeValue(timePart)

    parseDateTime = parsed_date + parsed_time
End Function
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.