আমি এক্সেলের সাথে কীভাবে এক সারি একাধিক সারিতে বিভক্ত করব?


9

আমার একসেলে একটি শতাধিক এন্ট্রি সহ একটি পণ্য ডেটাবেস রয়েছে, যার প্রত্যেকটির মূল্য 1 থেকে 3 "স্তর" থেকে শুরু করে: স্ট্যান্ডার্ড, ডিলাক্স এবং প্রিমিয়াম। প্রতিটি স্তরের নিজস্ব এসকিউ (এ, বি, বা সি বেস এসকিউয়ের শেষে যুক্ত করা হয়) এবং দাম থাকে। আমার ডেটা এইরকম:

Name, Description, Price A, Price B, Price C, SKU A, SKU B, SKU C
name1,      desc1,   14.95,   19.95,        , sku1A, sku1B, 
name2,      desc2,    4.95,    9.95,   12.95, sku2A, sku2B, sku2C
name3,      desc3,   49.95,        ,        , sku3A,      ,

আমি এটির মতো দেখতে ডেটা পেতে কীভাবে যাব:

Name, Description,   SKU, Price
name1,      desc1, sku1A, 14.95
name1,      desc1, sku1B, 19.95
name2,      desc2, sku2A,  4.95
name2,      desc2, sku2B,  9.95
name2,      desc2, sku2C, 12.95
name3,      desc3, sku3A, 49.95

যদি এটি সহায়তা করে তবে আমি এই পণ্যগুলিকে একটি ম্যাজেন্টো ইনস্টলেশনতে আমদানি করব।

অগ্রিম আপনাকে ধন্যবাদ।


এমন কি একাধিক নাম এবং বর্ণনা রয়েছে এমন কোনও সম্ভাবনা আছে? যেমন দুই লাইন আছে name1এবং desc1মূল্য এ, দাম বি, দাম সি, ইত্যাদি জন্য বিভিন্ন দামের কিন্তু
জেরি

মূল তথ্য আছে? না, আমি নিশ্চিত যে তারা অনন্য। তবে, নতুন ডেটাতে অবশ্যই পুনরাবৃত্তি হবে।
গ্রেজডন

ঠিক আছে, আমার মনে কিছু ছিল, তবে দেখা গেল কিছু ফলাফল সংশোধনের পিছনে আরও কারসাজি না করা থাকলে এটি কাজ করবে না। আপনি যদি কৌতূহলী হন তবে আমি একীভূত পিভটটেবাল চেষ্টা করছিলাম, তবে বর্ণনার ক্ষেত্র এবং এসকিউ ক্ষেত্রগুলি সূচক / ম্যাচ / ভিউলআপ ব্যবহার করে আলাদাভাবে টানতে হবে, যা এটি শেষে দীর্ঘস্থায়ী করে তোলে।
জেরি

উত্তর:


8

এই কাজগুলি সাধারণত ভিবিএর সাথে দ্রুত হয়। আসলে এটি সেট আপ করতে আমার 10 মিনিট সময় লেগেছে।
আমি ধরে নিচ্ছি আপনার ডেটা কলাম এ থেকে কলাম এইচ তে আছে

যান Excel » Developer » Visual Basicবাম পেইন খোলা উপর » sheet1(বা) শীট যেখানে আপনার ডেটা বসবাস» ঢোকান অধিকার জানালায় কোড »চালান কোড

ভিবিএ কোড

1 |Sub NewLayout()
2 |    For i = 2 To Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
3 |        For j = 0 To 2
4 |        If Cells(i, 3 + j) <> vbNullString Then
5 |            intCount = intCount + 1
6 |            Cells(i, 1).Copy Destination:=Cells(intCount, 10)
7 |            Cells(i, 2).Copy Destination:=Cells(intCount, 11)
8 |            Cells(i, 3 + j).Copy Destination:=Cells(intCount, 12)
9 |            Cells(i, 6 + j).Copy Destination:=Cells(intCount, 13)
10|        End If
11|        Next j
12|    Next i
13|End Sub

ব্যাখ্যা

কোডটি আরও ভাল করে ব্যাখ্যা করার জন্য যতটা সম্ভব সংক্ষিপ্ত রাখা আমার উদ্দেশ্য ছিল। মূলত আমরা দুটি লুপ ব্যবহার করি। বাইরের লুপটি ( i) সারিগুলির জন্য এবং অভ্যন্তরীণ লুপ ( j) দাম কলামগুলির জন্য।

আমরা cells(rowNumber,columnNumber)সেল পড়তে / লিখতে ভারী ব্যবহার করি ।

  • লাইন 2 | আপনার শেষ সারিতে সারি 2 থেকে একটি লুপ শুরু করুন। আমরা প্রতিটি ব্যবহৃত সারি মাধ্যমে পুনরাবৃত্তি

  • লাইন 3 | 0 থেকে 2 পর্যন্ত দ্বিতীয় লুপটি শুরু করুন (এটি আসলে 3 টি লুপ, প্রতিটি মূল্য কলামের জন্য একটি)

  • লাইন 4 | আমরা আমাদের বর্তমান সারি এবং কলামের মূল্য এ, তারপরে মূল্য বি এবং শেষ লুপের মূল্য সিটিতে মূল্য অনুসন্ধান করার জন্য এই অভ্যন্তরীণ লুপটি ব্যবহার করি we যদি কোনও মূল্য isোকানো না হয় তবে আমরা কিছুই করি না এবং পরবর্তী মূল্য কলামে যাই

  • লাইন 5 | আমরা ইতিমধ্যে কতগুলি সারি অনুলিপি করেছি তা জানতে একটি কাউন্টার গণনা করুন,
    তাই আমরা আমাদের বর্তমান সারিটি কী সারিটি অনুলিপি করতে পারি তা জানতে পারি

  • লাইন 6 | নামের কলামটি অনুলিপি করুন

  • লাইন 7 | বিবরণ কলাম অনুলিপি করুন

  • লাইন 8 | আমরা বর্তমানে অভ্যন্তরীণ লুপটি নির্ভর করে দাম এ বা বি বা সি কলামটি অনুলিপি করুন

  • লাইন 9 | বর্তমানে আমরা কী অভ্যন্তরীণ লুপ করছি তার উপর নির্ভর করে এসকিউ এ বা বি বা সি কলামটি অনুলিপি করুন

ফলাফল স্ক্রিনশট

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


1
এটি চমৎকার! ঠিক আমার যা প্রয়োজন আমার ডেটা আসলে আমার উদাহরণের চেয়ে কিছুটা জটিল এবং আমি ভিবিএতে নতুন, সুতরাং আপনার ব্যাখ্যাটি দুর্দান্তভাবে সহায়তা করে। ধন্যবাদ!
গ্রেজডন

2

এখানে একটি কার্যপত্রক ফাংশন সমাধান রয়েছে। সূত্রগুলি কিছুটা ঘন, তাই সতর্কতা অবলম্বন করুন তবে এটি আপনাকে যা দেবে তা দেবে।

পদক্ষেপ:

  1. আপনার নতুন টেবিলের প্রথম সারিতে, নীচে Name, Nameআপনার ডেটাতে প্রথমটির জন্য প্রত্যক্ষ রেফারেন্স প্রবেশ করান । আপনার উদাহরণে, আপনি প্রবেশ করবেন =A2যেখানে আপনার ডেটাতে তালিকাভুক্ত প্রথম নাম A2। আমি নীচে প্রদত্ত স্ক্রিনশটটিতে, এই সূত্রটি প্রবেশ করে A8। নিম্নলিখিত সমস্ত সূত্রগুলি স্ক্রিনশটে ব্যবহৃত লেআউটটি অনুসরণ করবে। আপনার শীট (গুলি) মেলাতে অবশ্যই অবশ্যই আপনার সমস্ত পরিসীমা রেফারেন্স আপডেট করতে হবে।
  2. এর নীচে ঘরে, নিম্নলিখিত সূত্রটি প্রবেশ করান:
    = যদি (COUNTIF ($ একটি $ 9: A9, A9) = গণনা A (OFFSET ($ সি $ 1: $ ই $ 1 ম্যাচ (A9, $ একটি: $ 2, $ A $ 5,0), 0)) সূচক ($ একটি $ 2 : $ একটি $ 5 ম্যাচ (A9, $ একটি: $ 2, $ A $ 5,0) + 1), A9)
    
    এটি মূলত উপরের তালিকাভুক্ত নামের জন্য কতগুলি সারি থাকতে হবে তা যাচাই করে (ইন A9), এবং যদি আপনার নতুন সারণীতে ইতিমধ্যে সারিগুলির সংখ্যা মিলে যায়, তবে এটি পরবর্তী নামের দিকে চলে যায় moves যদি তা না হয় তবে উপরের নামের জন্য একটি সারি যুক্ত করা হবে।
    আপনার যতদূর প্রয়োজন এই সূত্রটি পূরণ করুন (এটি কোনও নামের পরিবর্তে 0 ফেরায় না হওয়া পর্যন্ত)।
  3. প্রথম সারিতে Descriptionনীচের সূত্রটি লিখুন এবং পূরণ করুন।
    = INDEX নম্বর ($ বি $ 2: $ বি $ 5 ম্যাচ (A9, $ একটি: $ 2, $ A $ 5,0))
  4. প্রথম সারিতে নীচে SKU, সূত্র বারে নিম্নলিখিত সূত্রটি পেস্ট করুন এবং Ctrl+ Shift+ টিপুন Enter
    = INDEX নম্বর (OFFSET ($ একটি $ 1: $ এইচ $ 1 ম্যাচ (A9, $ একটি: $ 2, $ A $ 5,0), 0), ছোট (যদি (OFFSET ($ এফ $ 1: $ এইচ $ 1 ম্যাচ (A9, $ একটি: $ 2, $ A $ 5,0), 0) <> "", কলাম ($ এফ $ 1: $ এইচ $ 1)), COUNTIF ($ একটি $ 9: $ A9, $ A9)))
    এটি একটি অ্যারে সূত্র; সঠিকভাবে প্রবেশ করা থাকলে সূত্রটি কোঁকড়া বন্ধনীতে আবদ্ধ সূত্র বারে উপস্থিত হবে। আপনার সূচীতে এই সূত্রটি পূরণ করুন (প্রতিটি উদাহরণ একইভাবে কোঁকড়া বন্ধনীতে উপস্থিত হওয়া উচিত)।
  5. একইভাবে, প্রথম সারিতে অধীন Priceফর্মুলা বারে নিম্নলিখিত সূত্র পেস্ট একটি বিন্যাস সূত্র যেমন লিখুন (টিপে Ctrl+ + Shift+ + Enter)।
    = INDEX নম্বর (OFFSET ($ একটি $ 1: $ এইচ $ 1 ম্যাচ ($ A9, $ একটি: $ 2, $ A $ 5,0), 0), ছোট (যদি (OFFSET ($ সি $ 1: $ ই $ 1 ম্যাচ ($ A9 , $ একটি: $ 2, $ A $ 5,0), 0) <> "", কলাম ($ সি $ 1: $ ই $ 1)), COUNTIF ($ একটি $ 9: $ A9, $ A9)))
    পূরণ করুন এবং এটিতে আপনার টেবিলটি সম্পূর্ণ করা উচিত।

টেবিলের স্ক্রিনশট


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