সেল মান অনুসারে এক্সেল ফাইলটি বিভক্ত করুন


1

আমার কাছে আরও 100000 রিকোডগুলির ফাইল রয়েছে। আমি সেল মান অনুযায়ী ফাইলটি বিভক্ত করতে চাই। উদাহরণস্বরূপ, কলাম এআই এর সলাইড রয়েছে, আমি সোলিড অনুযায়ী ফাইলটি বিভক্ত করতে চাই এবং সলাইডের নামে সংরক্ষণ করতে চাই। এছাড়াও থুথু দেওয়া প্রতিটি ফাইলের শিরোনাম প্রয়োজন।

উদাহরণ

SOLID  CLIENTID   NAME    CLIENT_TYPE  STATUS
1324   123455     PU      1            3
1324   12364453   HARI    1            1
1324   4242430    S       1            1
1324   242454     SANJ    1            1
1324   454144     LOVE    1            1
1325   44         ANJ     1            1
1325   4          SUN     1            1
1325   4          ANS     1            1
1325   54546      ROBI    1            1
1289   4646       MUNI    1            1
1289   454546     JAYA    1            1
1289   46464      RAMC    1            1
1289   4545       MAHES   1            1

এটি স্ট্যাকএক্সচেঞ্জের জন্য একটি প্রশ্ন। আপনার অবশ্যই এটির জন্য একটি ম্যাক্রোর প্রয়োজন।
ভেরিয়েন্ট

1
@ ভারিয়েন্ট আসলে আমি প্রশ্নটি বুঝতে পারি না। সে ঠিক কী করতে চায়? (আসলে পাঠ্যে কোনও জিজ্ঞাসাবাদের চিহ্ন নেই))
পিও

আপনি উদাহরণস্বরূপ 3 টি কার্যপত্রক বা তিনটি ওয়ার্কবুকে বিভক্ত করতে চান? এক একটি 1324, 1325 এবং 1289?
ডাটাটু

আমার বোঝাটা ডাটাটুর মতোই।
রূপান্তর

@ জোবেদার্ড: আমি সম্মত হই যে এই প্রশ্নটি অস্পষ্ট, তবে চুলগুলি বিভক্ত করবেন না to "আমি চাই ..." এর অর্থ "আমি কীভাবে করব ...?" এখানে প্রচুর "প্রশ্ন" প্রশ্ন চিহ্নের সাথে শেষ হয় না।
স্কট

উত্তর:


1

আমি যেমন আপনার প্রশ্নটি বুঝতে পারি, আপনার কাছে একটি কার্যপত্রক রয়েছে যা প্রথম কলামে আপনার ডেটা সারিগুলি নির্ধারিত মানগুলি অন্তর্ভুক্ত করে। আপনি সেই মানগুলির প্রত্যেকের জন্য নির্ধারিত সারিগুলি আলাদা করতে এবং প্রতিটি মানের জন্য সারিগুলি পৃথক ওয়ার্কশিটে সংরক্ষণ করতে চান। আমি ধরে নিচ্ছি যে আপনি যে পুনর্বিবেচনার উল্লেখ করেছেন তার সংখ্যার দিক দিয়ে আপনি নিজে হাতে এটি করা এড়াতে চান।

নিম্নলিখিত ভিবিএ কোড আপনার প্রয়োজন অনুসারে করতে পারে। এটি এমন একটি প্রক্রিয়া অন্তর্ভুক্ত করে যা এক্সেল টেবিলের জন্য ফিল্টার মান প্রয়োগ করে এবং পৃথক ওয়ার্কবুকগুলিতে ফলাফলগুলি সংরক্ষণ করে, পাশাপাশি একটি ইউটিলিটি ফাংশন যা ফিল্টার করা দরকার সেই অনন্য মানগুলি সনাক্ত করে।

   বিকল্প স্পষ্ট

   সাব ফিল্টার টেবিলঅ্যান্ডসেভ ()
        'প্রথমটিতে মানগুলিতে একটি ডেটা পরিসীমা ফিল্টার করে
        'পরিসীমাটির কলাম এবং ফিল্টারটি সংরক্ষণ করে
        পৃথক ওয়ার্কশিটগুলির মান। তথ্য পরিসীমা
        'ধরে নেওয়া হয় এটি A1 কক্ষে শুরু হবে এবং আছে
        'ব্যাপ্তির 1 সারি কলামের শিরোনামের নাম।
        '
        'ওয়ার্কবুকগুলি নাম দিয়ে সংরক্ষণ করা হয় যা দিয়ে শুরু হয়
        'একটি নির্দিষ্ট উপসর্গ এবং ফিল্টার মান দিয়ে শেষ,
        'যেমন, "ফাইল ফাইল কর্পোরেশন"। ডিরেক্টরি যা
        'ফাইলগুলি সংরক্ষিত হয় এবং ফাইলের উপসর্গটি নির্দিষ্ট করতে হবে
        ' নিচে.

        ডাব্লু ডাব্লু ওয়ার্কবুক হিসাবে
        ওয়ার্কশিট হিসাবে ডিম ডাব্লুএস, ওয়ার্কশিট হিসাবে নতুন ডাব্লু
        ধাপ সারণীরেঞ্জ রেঞ্জ হিসাবে, ফিল্টারভ্যালুআরঞ্জ রেঞ্জ হিসাবে, শেষ সীমা রেঞ্জ হিসাবে
        স্ট্রিং হিসাবে ডিমে সেভডির, সেভপ্যাথএন্ডনাম স্ট্রিং হিসাবে
        স্ট্রিং হিসাবে ডিমে ইমেজ রিসপন্স, স্ট্রিং হিসাবে সেমনেমপ্রফিক্স
        ডিমে ইনপুটআর () ভেরিয়েন্ট হিসাবে, ফলাফলআর () ভেরিয়েন্ট হিসাবে
        ধীর ফলাফল

        ত্রুটিতে GoTo ExitErr এ

        অ্যাপ্লিকেশন সহ
            .ScreenUpdating = মিথ্যা
            .EnableEvents = মিথ্যা
        শেষ করা

        '*********************************************
        'সংরক্ষণের ডিরেক্টরিটি সেট করুন এবং ফাইলটি এখানে পছন্দসই করুন
        '*********************************************
        সেভডির = "ই: \"
        saveNamePrefix = "ফাইল"
        '*********************************************

        Ws = এই ওয়ার্কবুক. ওয়ার্কশিটস ("পত্রক 1") সেট করুন
        লাস্টसेल = সেলগুলি সেট করুন ind ফাইন্ড (কী: = "*", এর পরে: = [এ 1], _
            SearchDirection: = xlPrevious)
        টেবিলআরঙ্গ = রেঞ্জ সেট করুন ("$ এ $ 1:" এবং লাস্টসেল। ঠিকানা)
        ফিল্টারভ্যালুআরজি = রেঞ্জ সেট করুন ("$ এ $ 2: $ এ $" এবং লাস্টসেল। রো)
        ডাব্লুএস সহ
            ত্রুটিতে পুনরায় সূচনা করার সময় 'ডেটা সীমাটি টেবিলের কাছে রূপান্তর করুন
            .ListObjects.Add (উত্স টাইপ: = xlSrcRange, উত্স: = টেবিলআরঙ্গ, _
            XLListObjectHasHeeda: = xlYes)। নাম = "প্রধান"
            ত্রুটিতে GoTo ExitErr এ
        শেষ করা
        ইনপুটআর = ফিল্টারভ্যালুআরঙ্গ 'অ্যারেতে ফিল্টার কলাম বরাদ্দ করুন
        ফলাফলআরআর = getDistinctE উপাদান (ইনপুটআর)
        রেজাল্ট ইন্ডেক্স = এলবাউন্ড (রেজাল্টআর) থেকে ইউবাউন্ড (রেজাল্টআর) এর জন্য ফিল্টার মানগুলির মধ্য দিয়ে লুপ করুন
            ডাব্লুএস সহ
                ত্রুটি পুনরায় শুরু করার পরে
                .ShowAllData
                ত্রুটিতে GoTo ExitErr এ
                .লিস্টঅবজেক্টস ("প্রধান")। রেঞ্জ.আউটফিল্টার _
                    ক্ষেত্র: = 1, মানদণ্ড 1: = "=" & ফলাফলআরআর (রেজাল্ট ইনডেক্স) 'বর্তমান ফিল্টার মান সেট করুন
                .লিস্টঅবজেক্টস ("প্রধান")। রেঞ্জ.কপি 'ফিল্টার করা সারিগুলিকে অনুলিপি করুন
            শেষ করা
            NewWs = ওয়ার্কবুকস সেট করুন। যুক্ত করুন (xlWBATWorksheet) or ওয়ার্কশিট (1) 'নতুন ওয়ার্কবুক তৈরি করুন এবং
            ত্রুটি পুনরায় শুরু করার সময় 'এতে ফিল্টার করা সারিগুলি পেস্ট করুন
            NewWs.Range ("A1") সহ
                .পস্টস্পেশিয়াল xlPasteColumnWidths
                .পাস্টস্পেশিয়াল xlPasteValuesAndNumberFor format
                .Select
                অ্যাপ্লিকেশন.কুটকপিমোড = মিথ্যা
            শেষ করা
            ত্রুটিতে GoTo ExitErr এ
            ডাব্লুবিবি = অ্যাকটিভ ওয়ার্কবুকের ফাইল সংরক্ষণের রুটিন সেট করুন
            savePathAndName = saveDir & saveNamePrefix & _
                              রেজাল্টআর (রেজাল্ট ইনডেক্স) এবং ".xlsx"
            যদি দির (savePathAndName) = "" তবে
                wb.SaveAs savePathAndName
                wb.Close
            অন্য 'বিদ্যমান ফাইলগুলির সাথে ডিল করুন, যদি থাকে তবে
                msgResponse = MsgBox ("ফাইল" & saveNamePrefix & _
                              রেজাল্টআর (রেজাল্ট ইনডেক্স) & _
                              ".xlsx ইতিমধ্যে বিদ্যমান" " & vbCrLf & _
                              "বিদ্যমান ফাইলটি প্রতিস্থাপন করবেন?", _
                              vbYesNoCancel)
                যদি msgResponse = vbYes তারপর
                    অ্যাপ্লিকেশন.ডিসপ্লে অ্যালার্টস = মিথ্যা
                    wb.SaveAs savePathAndName
                    wb.Close
                    অ্যাপ্লিকেশন.ডিসপ্লে অ্যালার্টস = সত্য
                আর
                    অ্যাপ্লিকেশন.ডিসপ্লে অ্যালার্টস = মিথ্যা
                    wb.Close
                    অ্যাপ্লিকেশন.ডিসপ্লে অ্যালার্টস = মিথ্যা
                যদি শেষ
            যদি শেষ
        পরবর্তী রেজাল্ট ইনডেক্স
        ws.SowowAllData 'ডেটা টেবিলটিকে ব্যাপ্তিতে ফিরিয়ে আনুন
        ডাব্লু.লিস্টঅবজেক্টস ("প্রধান")। তালিকাভুক্ত করা এবং বিন্যাস অপসারণ
        টেবিলআরং সহ
            .বার্ডার (xlEdgeLeft) .লাইনস্টাইল = xlNone
            .বার্ডার (xlEdgeTop) .লাইনস্টাইল = এক্সএলনোন
            .বার্ডার (xlEdgeB নীট) .লাইনস্টাইল = এক্সএলনোন
            .বার্ডার (xlEdgeRight) .লাইনস্টাইল = xlNone
            .বার্ডার (xlInsideVerical) .লাইনস্টাইল = এক্সএলনোন
            .বার্ডার (xlInsideHorizontal) .লাইনস্টাইল = এক্সএলনোন
            .ফন্ট.বোল্ড = মিথ্যা
            সাথে .আন্তরের
                .প্যাটার্ন = xlNone
                .TintAndShade = 0
                .প্যাটার্টিন্টএন্ডশ্যাড = 0
            শেষ করা
        শেষ করা
        ws.Range ( "ক 1")। নির্বাচন
        প্রস্থান করুন

    ExitErr:
        অ্যাপ্লিকেশন সহ
            .ScreenUpdating = সত্য
            .EnableEvents = সত্য
            .DisplayAlerts = সত্য
        শেষ করা
        সেট ws = কিছুই না
        NewWs = কিছুই সেট করুন
        এমএসজিবক্স "ত্রুটি" এবং এরার নাম্বার & ":" এবং এরর বিবরণ, vbOKOnly, "ত্রুটি"
    শেষ সাব

    ফাংশন গেটডিন্টিনেক্ট এলিমেন্টস (বাইরেফ ইনপুটআর)
        'এন-বাই -2 থেকে অনন্য আইটেমগুলির 1-ডি অ্যারে প্রদান করে
        ডুপ্লিকেট সহ ডেটা আইটেমগুলির ইনপুট অ্যারে।
        'ইনপুট অ্যারে সাধারণত উত্পন্ন হত
        'একটি একক-কলামের কার্যপত্রক সীমা নির্ধারণ করা
        'একটি ভেরিয়েন্ট অ্যারে।

        ডিম অব ডজ অজ অবজেক্ট
        দিম আমি লং
        সেট ডিক = ক্রিয়েটওবজেক্ট ("স্ক্রিপ্টিং.ডায়াররিজ")
        আই = এলবাউন্ডের (ইনপুটআর) থেকে ইউবাউন্ডের (ইনপুটআর)
            ডিক (ইনপুটআর (আই, 1)) = 1
        পরবর্তী i
        গেটডিস্টিনেক্টএলিমেন্টস = ডিক্ট.কি ()

    ফাংশন শেষ

এটি নিখুঁতভাবে কাজ করছে, আপনাকে অনেক ধন্যবাদ .....
সুশিল

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