এক্সেল - রোমান সংখ্যাসমূহ বড় হাতের অক্ষর রাখা টেক্সট রূপান্তর


3

আমার একটি CSV ফাইল রয়েছে যা শিরোনামের শিরোনামের অন্যতম একটি প্রোগ্রাম থেকে এক্সপোর্ট করা হয়। মূল প্রোগ্রামের ডেটা শিরোনাম ক্ষেত্রের জন্য সর্বাধিক বড় হাতের অক্ষর তাই যখন এটি রপ্তানি করে, শিরোনামটি এরকম কিছু দেখায়: 'COLUMN TITLE IV'। আমি পাঠ্যটিকে বড় হাতের অক্ষরে রূপান্তরিত করার চেষ্টা করলে, শিরোনামটি এই রকম দেখাচ্ছে: "কলাম শিরোনাম আইভি"।

রোমান সংখ্যাসমূহকে শিরোনামতে বড় হাতের অক্ষর হিসাবে রাখার কোন উপায় আছে তবে বাকিটি সঠিক পুঁজিকরণে রূপান্তর করুন?

আমার ফাইলটি প্রায় 5000 এন্ট্রি আছে তাই আমি একটি নন ম্যানুয়াল ভাবে এটি করার একটি উপায় প্রয়োজন।

সম্পাদনা করুন: আমার যদি সিপিআর ফান্ডামেন্টস চতুর্থ শিরোনাম থাকে তবে কি হবে? সিপিআর ক্যাপগুলি রাখতে এবং 'Fundamentals' থেকে 'Fundamentals' এ পরিবর্তন করার উপায় আছে?


অবশ্যই কলাম শিরোনাম যা এন্ট্রি অনেক হতে পারে না। এটা শুধু প্রথম সারিতে এন্ট্রি হবে না যে মনোযোগ প্রয়োজন? আপনি রোমান সংখ্যাগুলি খুঁজে পেতে নিয়মিত অভিব্যক্তি ব্যবহার করতে পারেন ( \b[lxvi]+\b 99 পর্যন্ত সমস্ত সংখ্যা খুঁজে পাবে), তবে আপনি CSV ফাইলটি সম্পাদনা করছেন নাকি আমদানি করার পরে এক্সেল ডেটা পরিবর্তন করছেন তা আপনি বলছেন না এবং সুনির্দিষ্ট সিনট্যাক্স আপনি যে সম্পাদক ব্যবহার করেন তার উপর নির্ভর করবে।
AFH

আসল প্রোগ্রাম থেকে এক্সপোর্টের পরে আমি এক্সেলের CSV ফাইল সম্পাদনা করছি।
ACanadianCoder

সঙ্গে খুব সহজ VBA .............. এই পদ্ধতি ঠিক আছে?
Gary's Student

আমি আগে কখনো এটি ব্যবহার করি নি তবে এটির সাথে খুব সহজ থাকলে এটি দুর্দান্ত হবে। আমি নিশ্চিত এটা আমি খুঁজে বের করতে সক্ষম হবেন।
ACanadianCoder

এবং কত কলাম হেডার আছে? আপনি নিজে নিজে এটি করার জন্য সহজেই একটি নিয়মিত অভিব্যক্তি পাওয়ার সাথে সাথে আরও বেশি সময় ব্যয় করতে পারেন।
AFH

উত্তর:


1

প্রথমে স্ট্যান্ডার্ড মডিউলে নিম্নলিখিত ব্যবহারকারী নির্ধারিত ফাংশন ইনস্টল করুন:

Public Function Properize(s As String) As String
    Dim temp As String, i As Long, L As Long, U As Long
    ary = Split(UCase(s), " ")
    U = UBound(ary)
    L = LBound(ary)
    With Application.WorksheetFunction
        For i = L To U
            If IsRoman(ary(i)) Then
            Else
                ary(i) = .Proper(ary(i))
            End If
        Next i
    End With
    Properize = Join(ary, " ")
End Function


Public Function IsRoman(s As Variant) As Boolean
    Dim i As Long, L As Long
    For i = 1 To Len(s)
        ch = Mid(s, i, 1)
        If InStr(1, "IVXLCDM", Mid(s, i, 1)) = 0 Then
            IsRoman = False
            Exit Function
        End If
    Next i
    IsRoman = True
End Function

তারপর সেল টেক্সট সঙ্গে ক 1 , খ 1 প্রবেশ করান:

=Properize(A1)

enter image description here

ফাংশন "উচ্চ ক্ষেত্রে" রোমান সংখ্যা এবং শব্দ "রোমান সংখ্যা" মত দেখতে হবে (উদাহরণস্বরূপ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC)

ব্যবহারকারী নির্ধারিত ফাংশন (UDFs) ইনস্টল করা এবং ব্যবহার করা খুব সহজ:

  1. ALT-F11 ভিবিই উইন্ডোটি নিয়ে আসে
  2. Alt-আমি ALT-M একটি নতুন মডিউল খোলে
  3. স্টাফ পেস্ট করুন এবং ভিবিই উইন্ডো বন্ধ করুন

আপনি যদি কার্যপুস্তিকাটি সংরক্ষণ করেন তবে ইউডিএফ এটির সাথে সংরক্ষণ করা হবে। 2003 এর পরে আপনি যদি এক্সেলের একটি সংস্করণ ব্যবহার করেন তবে আপনাকে অবশ্যই সংরক্ষণ করতে হবে .xlsx এর পরিবর্তে .xlsm ফাইলটি

ইউডিএফ অপসারণ করতে:

  1. উপরে হিসাবে VBE উইন্ডো আনতে
  2. কোড পরিষ্কার করুন
  3. VBE উইন্ডো বন্ধ করুন

এক্সেল থেকে ইউডিএফ ব্যবহার করতে:

= Myfunction (ক 1)

সাধারণভাবে ম্যাক্রো সম্পর্কে আরো জানতে, দেখুন:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

এবং

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

এবং UDFs এ সুনির্দিষ্ট জন্য, দেখুন:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

এই কাজ করার জন্য ম্যাক্রো সক্রিয় করা আবশ্যক!


@ এ্যাকানডিয়ান কোডার যদি আপনার ভিবিএতে সাহায্যের প্রয়োজন হয় তবে পোস্টটি হালনাগাদ করুন
Gary's Student
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.