এক্সেলের সদৃশগুলি একত্রিত করুন, কিছু কলাম এবং ওজনযুক্ত গড় যোগ করুন


2

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

A................B.......C..........D......E......F..........G.....H.....I.......J

Term............Clicks..Impre...AvCTR...AvBid...Cost....AvPos..Conv.£Conv..CRate

advent calendar 5572    147355  0.04    0.12    658.01  5.21    328 2.01    0.06

advent calendar 5719    084078  0.07    0.15    883.38  4.05    234 3.78    0.04

advent calendar 3398    070341  0.05    0.16    540.52  5.58    226 2.39    0.07

advent calendar 3078    108016  0.03    0.09    274.54  4.69    194 1.42    0.06

advent calendar 4948    140714  0.04    0.13    619.11  4.02    184 3.36    0.04

advent calendar 2193    088628  0.02    0.14    312.10  4.69    142 2.20    0.06

advent calendar 0861    077904  0.01    0.11    097.07  5.89    036 2.70    0.04

advent calendar 0104    000635  0.16    0.12    012.63  2.03    004 3.16    0.04

advent calendar 0034    000927  0.04    0.11    003.82  4.53    002 1.91    0.06

advent calendar 0007    000082  0.09    0.11    000.76  5.09    001 0.76    0.14

আমি উপরের কাজটি নিজে নিজে করে নিচের দিকে রূপান্তর করতে চাই? অর্থাত Duplicates এবং বি বি, সি, এফ এবং এইচ সমষ্টি মুছে দিন এবং ডি, ই, জি, আমি এবং জে একটি ওজনযুক্ত গড় না।

এটি একটি খুব বড় স্প্রেডশীটের অংশ।

advent calendar 25914 718680    0.04    0.13    3401.94 4.68    1351    2.68    0.05

আমি মাত্র ডি, ই, জি, আই এবং জে গড়তে পারি

আমি যে ডুপ্লিকেটযুক্ত শব্দটির জন্য ক্লিকের মোট ক্লিক দ্বারা সেই সারিগুলির তথ্যগুলিতে ক্লিকগুলি ভাগ করে একটি ওজনযুক্ত গড় গণনা করি, সেল ডেটা দ্বারা সেই ভগ্নাংশকে গুণিত করি এবং তারপরে সদৃশ কলামটি সংহত করি। মোটের জন্য সমষ্টি এইরকম দেখায়: = ($ বি 2 / $ B15 * E2) + ($ B3 / $ B15 * E3) + ($ B4 / $ B15 * E4) + ($ B5 / $ B15 * E5) + ($ বি 6 / $ B15 * E6) + + ($ B7 / $ B15 * E7) + + ($ B8 / $ B15 * E8) + + ($ B9 / $ B15 * E9) + + ($ B10 / $ B15 * E10) + + ($ B11 / $ B15 * E11)

আমি একটি তৈরি করেছেন আমার অনুরোধ ভুল , £ / রূপান্তর কলামের জন্য। এটি ক্লিক দ্বারা গড় ওজনযুক্ত হতে চায় না যা এটি রূপান্তর দ্বারা ওজন করতে চায় বা আমি এটি করেছি, মোট খরচ থেকে পরে মোট গণনা দ্বারা ভাগ করে নেওয়ার পরে (আমি আগে এটির সাথে মোকাবিলা করেছি আমি পরিসংখ্যান মুছে ফেলার এবং zeros নির্বাণ দ্বারা ম্যাক্রো দৌড়ে)।


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

উত্তর:


1

প্রতিটি কোড লাইন মন্তব্য করা হয়। তাই অনুরূপ কাজ জন্য কোড মানানসই তার সহজ

এর মানে কি

  • এই ভিবিএ ম্যাক্রো একটি অনুলিপিযুক্ত শীটের সমস্ত অনন্য সারি সংযুক্ত করে।
    কোন কলামটি একটি সদৃশ তা নির্ধারণ করার জন্য এটি কলাম A মানগুলিতে দেখায়
  • এটি কলাম বি, সি, এফ এবং এইচ কলাম।
  • এটি ডি, ই, জি, আই এবং জে এর জন্য গড় হিসাব করে।
    এটি একটি ওজনযুক্ত গড় ব্যবহার করে না, কারণ আমি এখনও জানি না যে আপনি ঠিক কতগুলি গণনা করেন

ব্যবহারবিধি

  • আপনার তথ্য কর্মপরিসর খুলুন এবং প্রেস এবং ALT + + F11
  • কপি এবং; কোথাও বা একটি নতুন মডিউল নীচের কোড পেস্ট করুন
  • কাস্টমাইজ AVcols() এবং SUMcols() যদি আপনি অন্যান্য কলামের সমষ্টি বা গড় গণনা করতে চান
  • ভিবিএ সম্পাদকটি বন্ধ করুন এবং আপনি যেটি সংযুক্ত করতে চান সেটি নির্বাচন করুন / দেখুন
  • প্রেস এবং ALT + + এবং F8 এবং ম্যাক্রো চালানো combineduplicates

Sub combineduplicates()                 '### starts our macro
Application.ScreenUpdating = False      '### Excel wont update its screen while executing this macro. This is a huge performace boost
Dim AVcols()                            '### declare an empty array for our average columns
Dim SUMcols()                           '### declare a second empty array for our sum columns
Dim AVtemp()                            '### declare a third empty array for our temporal values we need to calculate a weighted average

AVcols() = Array(4, 5, 7, 9, 10)        '### we use the first array to store our columns for calculating an average
SUMcols() = Array(2, 3, 6, 8)           '### the second array stores the columns which should be summed up
Mcol = 2                                '### whats the multiplier column for our weighted average?

ActiveSheet.Copy Before:=Sheets(1)      '### take a copy of our activesheet. this way we don't touch the original data
'### the next line sets our range for searching dublicates. Starting at cell A2 and ending at the last used cell in column A
Set searchrange = Range([A2], Columns(1).Find(what:="*", after:=[A1], searchdirection:=xlPrevious))
For Each cell In searchrange            '### now we start looping through each cell of our searchrange

    ReDim AVtemp(UBound(AVcols) + 1, 0) '### make our temp array 2-dimensional and reser it from the previous loop
    For i = 0 To UBound(AVcols)         '### save values from start row for average calculating into the temp array
        AVtemp(i, UBound(AVtemp, 2)) = CDbl(Cells(cell.Row, AVcols(i)))     '### still filling the temp array
    Next i                              '### go ahead to the next column
    AVtemp(UBound(AVcols) + 1, UBound(AVtemp, 2)) = CDbl(Cells(cell.Row, Mcol)) '### save the clicks too

    Set search = searchrange.Find(cell, after:=cell, lookat:=xlWhole)   '### searches for a dublicate. If no dub exists, it finds only itself
    Do While search.Address <> cell.Address     '### until we find our starting cell again, these rows are all dublicates

        For i = 0 To UBound(SUMcols)    '### loop through all columns for calculating the sum
            '### next line sums up the cell in our starting row and its counterpart in its dublicate row
            Cells(cell.Row, SUMcols(i)) = CDbl(Cells(cell.Row, SUMcols(i))) + CDbl(Cells(search.Row, SUMcols(i)))
        Next i                          '### go ahead to the next column

        ReDim Preserve AVtemp(UBound(AVcols) + 1, UBound(AVtemp, 2) + 1)    '### expand the temp array so we have enough space to fill with values
        For i = 0 To UBound(AVcols)     '### loop through all columns for calculating the weighted average
            '### the next line saves the value in our temp array, but now for the duplicate rows
            AVtemp(i, UBound(AVtemp, 2)) = CDbl(Cells(search.Row, AVcols(i)))
        Next i                          '### go ahead to the next column
        AVtemp(UBound(AVcols) + 1, UBound(AVtemp, 2)) = CDbl(Cells(search.Row, Mcol))   '### save the clicks too

        search.EntireRow.Delete         '### we are finished with this row. Delete the whole row
        Set search = searchrange.Find(cell, after:=cell)    '### and search the next dublicate after our starting row
    Loop

    If search.Row = cell.Row Then       '### ok, now we have to calculate the average. All needed values are temporarly stored in our temp array
        For i = 0 To UBound(AVcols)     '### start with looping through all average columns
            average = 0                 '### reset the variable from the last loop
            For j = 0 To UBound(AVtemp, 2)              '### start looping through the data from all dublicated rows
                clicks = AVtemp(UBound(AVcols) + 1, j)  '### take the clicks for that row from the array
                sumclicks = Cells(cell.Row, Mcol)       '### take the summed up  clicks for all dublicated rows
                addaverage = AVtemp(i, j)               '### take the value which should be multiplied
                average = average + (clicks / sumclicks * addaverage)   '### now calculate the weighted average and sum it up with the old one
            Next j                      '### goto next data of dublicate rows
            Cells(cell.Row, AVcols(i)) = average    '### when finished with calculating, write the result to the workbook
        Next i                          '### go ahead to the next average column
    End If                              '### only the end line of our condition

Next                                    '### from here we start over with the next cell of our searchrange
                                        '### Note: This is a NEW unique value since we already deleted all old dublicates
Application.ScreenUpdating = True       '### re-enable our screen updating
End Sub                                 '### ends our macro

আমার একটি চেহারা আছে পরীক্ষা ওয়ার্কবুক যদি আপনি ম্যাক্রো শুরু করতে সমস্যা আছে।


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

আমি এটা সাহায্য করে খুশি। আপনি যদি ওজনযুক্ত গড় গণনা করেন তবে আমি একটু বেশি সাহায্য করতে পারি। কোন কলামের সঙ্গে "গড় মান" গুণিত হয়? আপনি যদি চান তাহলে আপনার প্রাথমিক প্রশ্ন সম্পাদনা করুন।
nixda

আমি যে ডুপ্লিকেটযুক্ত শব্দটির জন্য ক্লিকের মোট ক্লিক দ্বারা সেই সারিগুলির তথ্যগুলিতে ক্লিকগুলি ভাগ করে একটি ওজনযুক্ত গড় গণনা করি, সেল ডেটা দ্বারা সেই ভগ্নাংশকে গুণিত করি এবং তারপরে সদৃশ কলামটি সংহত করি। মোটের জন্য সমষ্টি এইরকম দেখায়: = ($ বি 2 / $ B15 * E2) + ($ B3 / $ B15 * E3) + ($ B4 / $ B15 * E4) + ($ B5 / $ B15 * E5) + ($ বি 6 / $ B15 * E6) + + ($ B7 / $ B15 * E7) + + ($ B8 / $ B15 * E8) + + ($ B9 / $ B15 * E9) + + ($ B10 / $ B15 * E10) + + ($ B11 / $ B15 * E11) এই যোগটি একটি পরীক্ষার শীটে ছিল যার মধ্যে দশটি সারি ছিল। আপনি ম্যাক্রো মধ্যে এই পেতে পারে মনে করেন? রিয়ার রিচার্ড
RichardR

সম্পন্ন. সম্পাদনা দেখুন। আমি একটি ওজনযুক্ত গড় গণনা সঙ্গে গড় হিসাব প্রতিস্থাপিত
nixda

হাই, আশ্চর্যজনক। আমার এই সমস্যাটি আপনি বিশ্বাস করবেন না, এটি আমাকে একটি রান টাইম ত্রুটি প্রদান করছিল ওভারফ্লো বার্তা, তবে আমি আকারে শীটটি কেটে ফেলেছিলাম। আমি ক্লিক দ্বারা স্প্রেড শীট সাজানো না হওয়া পর্যন্ত! তারপর এটি জরিমানা দৌড়ে, এটি অনুসন্ধান শব্দ বা রূপান্তর আদেশে শীট পছন্দ করে না। আবার আপনাকে ধন্যবাদ. আমার মতো গুগলের রিপোর্টের সাথে সেখানে অন্যরাও থাকতে হবে!
RichardR

1

আপনি যদি অন্য পাতায় ফলাফলের তথ্য নির্বাণ করতে পারেন ...

কলাম A কে নতুন শীটে অনুলিপি করুন, তারপরে আপনার নতুন কলাম নির্বাচন করুন এবং তথ্য / অপসারণ ডুপ্লিকেটগুলিতে যান (অথবা তথ্য নির্বাচন করুন এবং টিপুন অল্টার + + একজন , এম )।

হতে হবে যে তথ্য জন্য

  • সংকলিত, =SUMIF(OriginalData!A:A,NewData!A2,OriginalData!B:B)
  • ওজনযুক্ত গড়, SUMPRODUCT(OldData!B2:B1000,OriginalData!D2:D1000,--(OriginalData!A2:A1000=NewData!A2)/SUMIF(OriginalData!A:A,OriginalData!A2,OriginalData!B:B)
    • নোট করুন যে আপনি SUMIF এর জন্য আপনার নতুন শীট থেকে একটি ঘর প্রতিস্থাপন করতে পারেন এটি একই হতে পারে

আমি আনন্দের সাথে অন্য শীট তথ্য রাখা হবে। আমি কিভাবে ডুপ্লিকেটগুলি মুছে ফেলতে পারি তা দেখতে পাচ্ছি তবে এর পরে আপনার কী বোঝা যায় তা আমি বুঝতে পারছি না? আমার অনুসন্ধান প্রতিবেদনটিতে অনুসন্ধানের শব্দ এবং এর ডেটা সহ 5000 সারি রয়েছে, কিছু অনুসন্ধান পদ একই রকম কিন্তু ব্যক্তিগত তথ্য আছে। আমাকে শীটের অনন্য শর্তগুলি পেতে হবে তবে মুছে ফেলা হয়েছে এমন সদৃশগুলির সাথে সম্পর্কিত সমস্ত ডেটা থাকা দরকার, অর্থাৎ উপরের উদাহরণে আমাকে "আগমনের ক্যালেন্ডার" এবং মোট ক্লিকগুলি, মোট ছাপগুলি সহ এক সারি দরকার মুছে ফেলা সারি থেকে garnered ইত্যাদি? রিয়ার রিচার্ড (যুক্তরাষ্ট্রে চশায়ারে বসবাস!) অদ্ভুত?
RichardR

এখন আপনার কাছে আপনার ডেটা তালিকা রয়েছে (নতুন শীটের কলাম A তে সদৃশ ছাড়া, আপনি পুরানো ডেটা থেকে সমস্ত মোট যোগ করার জন্য উল্লেখ করতে পারেন। advent calendar তারপর, A2 হয় =SUMIF(OldData!A:A,newData!A2,OldData!B:B) আপনার আসল শীট থেকে কলাম বি এ সমস্ত সংখ্যার মোটেও এটির সাথে সংশ্লিষ্ট হবে advent calendar মূল শীট কলাম এ
SeanC

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