চরিত্রের অবস্থানের ভিত্তিতে এক্সেলের মধ্যে ডেটা বিভক্ত করা


1

আমার কাছে একটি কলামের উপাত্ত রয়েছে, প্রতিটি সারিটিতে 83 টি অক্ষরের একটি সেট রয়েছে (উদাহরণস্বরূপ 010203 344345 929348238482cc3333 4566) কোনও নির্দিষ্ট প্যাটার্ন সহ যা বিভিন্ন দৈর্ঘ্যের ব্লকগুলিতে বিভক্ত হওয়া প্রয়োজন (যেমন 6,1,6,6,4,4, ... 4,1,1)। প্রোগ্রামগুলি এই ব্লকগুলি বিভক্ত করার সর্বোত্তম উপায় কী হবে? একটি ভিবিএ তালিকা স্থাপন এবং লুপিং সম্ভবত সেরা বাজি হবে?


আপনার ডেটা প্রাথমিকভাবে কীভাবে ছড়িয়ে দেওয়া হয়? দয়া করে একটি স্ক্রিনশট সরবরাহ করুন।
এরিক এফ

@ এরিকএফ এটি কেবল একটি কলামে রয়েছে, প্রতিটি সারিটিতে একটি 83 টি অক্ষরের স্ট্রিং রয়েছে।
সর্বাধিক পাওয়ার

@ ম্যাক্সপাওয়ার আপনার ব্লক সিকোয়েন্সের দৈর্ঘ্যের কোনও প্যাটার্ন আছে?
Chrismas007

এবং প্রতিটি কক্ষটি "6,1,6,6 .." এর মতো দেখতে মূলত কমা দ্বারা সংখ্যায়িত সংখ্যাগুলি?
এরিক এফ

1
@ ম্যাক্সপাওয়ার আপনি কি তাদের আলাদা কলামে বিভক্ত করতে চান? কারণ আপনি =MID()প্রতিটি পরবর্তী কলামের সূত্রের সাহায্যে সহজেই এটি করতে পারেন তারপরে সূত্রটি অনুলিপি করুন (স্বতঃপূর্ণ)।
Chrismas007

উত্তর:


2

এটি আপনি যা খুঁজছেন তা করা উচিত: চূড়ান্ত

সূত্রটি B2বিশেষ কারণ এটি আপনাকে শুরু করে:

=MID($A2, 1, B1)

তবে তারপরে C2পুরো 18 টি কলামে অনুলিপি করা যায় D2-> LastCol2:

=MID($A2,SUM($B$1:B$1)+1, C$1)

তারপরে পুরো সারিটি অনুলিপি করুন এবং সূত্রগুলি সঠিকভাবে স্বতঃপূর্ণ করা উচিত।


0

সর্বাধিক, আমি মনে করি আমি বুঝতে পেরেছি যে আপনি আপনার ডেটা কমা দ্বারা সীমাবদ্ধ চান। ভাগ্যক্রমে এক্সেলের একটি বিল্ট ইন সরঞ্জাম রয়েছে। নিচে দেখ:

এখানে চিত্র বর্ণনা লিখুন

আশা করা যায় এটি আপনি যা করছেন তার পরে, অন্যথায় কলাম টুলটিতে পাঠ্যটি ব্যবহার করার চেষ্টা করুন কারণ একগুচ্ছ এক্সেল ফাংশন লেখার চেয়ে এটি সহজ।


তাঁর ডেটা কমা বর্ণিত নয়।
Chrismas007

-1

আমি ধরে নিচ্ছিলাম যে আপনি আপনার ডেটা সেটে প্রতিটি সারির জন্য আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা সেট তৈরি করতে চেয়েছিলেন wanted নিম্নলিখিত কোডটি শেষ পর্যন্ত।

আপনার ডেটার বামে একটি কলাম তৈরি করুন। কোনও ফাঁকা জায়গা নেই তা নিশ্চিত করুন। সেই কলামের সমস্ত কক্ষ নির্বাচন করুন এবং কোডটি চালান। এটি 83 টি অক্ষরের সাথে আপনার কলামের ডানদিকে বিরতি ফেলবে। বিটিডাব্লু, আপনার বিরতির যোগফল অক্ষরের দৈর্ঘ্যের চেয়ে বেশি হলে (এ ক্ষেত্রে ৮ 83) ত্রুটি হবে will

আশা করি এটা সাহায্য করবে.
কাইলি

Sub SplitManyTimes()
Dim r As Range, rng As Range
Dim arr As Variant
Dim lLength As Long, lStart As Long, i As Long

Set rng = Selection
For Each r In rng
    lStart = 1
    arr = Split(r, ",")
    For i = 1 To UBound(arr) + 1
        lLength = Val(arr(i - 1))
        r.Offset(0, i + 1) = Mid(r.Offset(, 1), lStart, lLength)
        lStart = lStart + lLength
    Next i
Next r
End Sub
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.