খালি সঙ্গে এক্সেলে মানগুলির মধ্যে গড় পার্থক্য এবং দিকনির্দেশ


0

আমার কাছে এমন একটি শীট রয়েছে যা দেখতে দেখতে এমন কিছু দেখাচ্ছে :

চাদর ঘ

    1   2   3   4   5   6   7   8   9   10  11
1                                           6
2                                       3   5
3                                           
4                               2   4   9   4
5                                           
6                                   4   6   6
7       5   3   3       3   10  8   4       8
8                                           
9                           4   11  12  12  6
10                                          
11  8   5   5       4   9   4   7   6       

আমি যেটি করতে সক্ষম হতে চাই তা হ'ল প্রতিটি সারির প্রতিটি কলামের মানগুলির মধ্যে গড় পার্থক্য এবং দিকনির্দেশ। উদাহরণস্বরূপ, প্রথম 4 টি সারি দেখতে পাবেন:

     Average Difference # + Movements   # -Movements
1           
2           2                    1              0
3           
4       (2+5+5)/3                2              1

অপ্রতুল তথ্যের কারণে খালিগুলি N / A মানগুলিকে উপস্থাপন করে এবং পার্থক্যগুলি ক্রমান্বয়ে গণনা করা হয় col2-col1, col3-col2, col4-col3

আমি যদি কেবলমাত্র পার্থক্যগুলি গ্রহণ করি এবং সূত্রের সাথে অনুলিপিযুক্ত টেবিলটি তৈরি করি তবে =C2-B2যখনই দুটি মানের মধ্যে বা সারির শুরুতে একটি ফাঁকা জায়গা থাকে তখনই উত্থাপিত হয় issues এটি মিস করার কোনও সহজ উপায় বা এটি করার কোনও অন্য উপায় আছে যা আমি অনুপস্থিত হতে পারি?


আপনি কী করতে চাইছেন তা সত্যিই পরিষ্কার নয়। এই টেবিলের ফলাফলটি কেমন হবে? আপনি কি সারি 2 থেকে সারি 3 এবং তার পরে সারি 4 থেকে সারি 3 বিয়োগ করছেন? আপনাকে সাহায্য করার আগে আমাদের আরও বিশদ প্রয়োজন।
gtwebb

@gtwebb ধন্যবাদ gtwebb, আমি পোস্টটি আরও কয়েকটি বিশদ দিয়ে আপডেট করেছি যা আশা করি পরিস্থিতি স্পষ্ট করতে সহায়তা করবে।
114

উত্তর:


1

আপনি যদি ভিবিএ সমাধান চান তবে এটি একটি মডিউলে অনুলিপি করুন।

Function Score(R As Range, Col As String)
    Dim ThisCell As Range
    Dim Dif As Integer
    Dim Cnt As Integer
    Dim PosMove As Integer
    Dim NegMove As Integer
    Dim PrevNum As Integer
    Dim ThisNum As Integer
    PrevNum = 9999
    For Each ThisCell In R.Cells
        If IsNumeric(ThisCell.Text) Then
            ThisNum = ThisCell.Value
            If PrevNum <> 9999 Then
                Cnt = Cnt + 1
                If ThisNum > PrevNum Then
                    Dif = Dif + (ThisNum - PrevNum)
                    PosMove = PosMove + 1
                ElseIf ThisNum < PrevNum Then
                    Dif = Dif + (PrevNum - ThisNum)
                    NegMove = NegMove + 1
                End If
            End If
            PrevNum = ThisNum
        End If
    Next
    Select Case LCase(Col)
        Case "avg"
            If Dif = 0 Or Cnt = 0 Then
                Score = 0
            Else
                Score = Dif / Cnt
            End If
        Case "pos"
            Score = PosMove
        Case "neg"
            Score = NegMove
    End Select
End Function

তারপরে আপনি কলটি এইভাবে করবেন:

=score(A1:K1,"avg")
=score(A1:K1,"pos")
=score(A1:K1,"neg")

1

আমি কোষগুলি ভরে গেছে কিনা তা পরীক্ষা করতে যদি একটি বিবৃতি ব্যবহার করব

=IF(COUNT(B2:B3)=2,B3-B2,"")

এরপরে যদি আপনি সারির গড় গড় করেন তবে ফাঁকা ঘরগুলি উপেক্ষা করা হবে এবং আপনার পছন্দসই মানটি পাওয়া উচিত।

নীচে আপনার টেবিলের জন্য। গড় পরিবর্তন হবে

=SUMPRODUCT(--(A2:C2<>""),--(A3:C3<>""),(A3:C3-A2:C2))/SUMPRODUCT(--(A2:C2<>""),--(A3:C3<>""))

কোষের সংখ্যা বাড়তে পারে

=SUMPRODUCT(--(A2:C2<A3:C3))

কক্ষের সংখ্যা হ্রাস পাবে

=SUMPRODUCT(--(A2:C2>A3:C3))

এটি ধরে নেয় টেবিলটি কেবলমাত্র 3 টি কলাম প্রশস্ত, আপনার ডেটার জন্য প্রসারিত।

স্মারপ্রডাক্ট মূলত অ্যারে গণনা করতে ব্যবহৃত হয়। আপনি সিআরটিএল + শিফট + প্রবেশ ব্যবহার করে অন্যান্য সূত্রগুলিও ব্যবহার করতে পারেন তবে এইগুলি কৌশলটি করা উচিত।


দুঃখিত, আমি উল্লেখ করেছি যে আমি সারিগুলির প্রতি আগ্রহী ছিলাম যখন আমার কলামগুলি দেখানো উচিত ছিল। কেবল বি 2: বি 3 কে বি 2: সি 2 এবং এ 2: সি 2 থেকে এ 2: এ 4 এ কাজ করা উচিত, এটি কি ঠিক?
114

হ্যাঁ এটি সঠিক
gtwebb

আমার একমাত্র জিনিসটি সামঞ্জস্য করতে হবে তা হ'ল যদি একটি ফাঁকা জায়গা থাকে এবং ফাঁকা জায়গার পরে আর একটি সংখ্যাও পার্থক্য গণনা করা দরকার, তবে সেই সূত্রটিতে বাদ দেওয়া হয়েছে = / = 2.
114

0

আমি এটির জন্য পাওয়ার কোয়েরি অ্যাড-ইন ব্যবহার করব। আমি এমন একটি প্রোটোটাইপ তৈরি করেছি যা আপনি দেখতে বা ডাউনলোড করতে পারেন - আমার ওয়ান ড্রাইভে এর "পাওয়ার কোয়েরি ডেমো - গড় গতিবিধি এবং একটি সারিতে পার্থক্য। Xlsx":

https://onedrive.live.com/redir?resid=4FA287BBC10EC562%21398

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

তারপরে ২ য় ক্যোয়ারিতে আমি সেই তালিকাটি নিজের সাথে মার্জ করে প্রতিটি কক্ষের মানটি বাম দিকের পরবর্তী ফাঁকা কক্ষে যুক্ত করতে পারি। তারপরে গণনাগুলি যেমন পার্থক্য, + আন্দোলন মোটামুটি সহজ হয়ে যায়। সর্বশেষ পদক্ষেপটি গ্রুপ অনুসারে সারি সংখ্যা এবং গণনাগুলিকে একত্রিত করা

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

তারপরে পাওয়ার কোয়েরি পদ্ধতির সুবিধাটি হ'ল আপনাকে ভিবিএতে কোডিং করতে হবে না, এর 99% পাওয়ার কোয়েরি ইউআই-তে ক্লিক করে বা উত্পন্ন কোডে সহজ সম্পাদনা করে সম্পন্ন করা হয়। আপনার জটিল নেস্টেড সূত্রগুলিরও দরকার নেই - গণনাগুলি সহজ না হওয়া পর্যন্ত আপনি ডেটা পুনরায় আকার দিতে পারেন।

পাওয়ার ক্যোয়ারী আনপাইভট কমান্ডটি একটি আশ্চর্য - এটি নতুন কলামগুলিকে উত্স সারণীতে যুক্ত করা হলে তা স্বয়ংক্রিয়ভাবে প্রসারিত হবে এবং ফাঁকা মানগুলি সরিয়ে ফেলবে।


আমি এটি করতে চাই তবে এটি এক্সেল 2013 এ আপগ্রেড করার পরে এটি আমার এক্সেলের আমার সংস্করণে আর অন্তর্ভুক্ত নয়
114

পাওয়ার ক্যোয়ারী এমন একটি অ্যাড-ইন যা আপনাকে ডাউনলোড এবং ইনস্টল করতে হবে যেমন: মাইক্রোসফট /en-au/download/details.aspx?id=39379
মাইক হানি

আমি একটি প্রোটোটাইপ তৈরি করেছি এবং আমার উত্তরটিতে লিঙ্ক এবং একটি আপডেট বিবরণ যুক্ত করেছি।
মাইক মধু

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