چگونگی گرفتن میانگین از توابع غیر عددی

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • hasa2

    • 2015/01/09
    • 73
    • 56.00

    [حل شده] چگونگی گرفتن میانگین از توابع غیر عددی

    چطور میشه از سلول‌هایی که غیر عددی هستند میانگین گرفت؟
    فرض کنید یه ستون داریم که مقادیر غیر عددی (عالی - خوب - متوسط و ضعیف) توشون هستند مثل تصویر زیر :
    Click image for larger version

Name:	Pix.jpg
Views:	1
Size:	9.9 کیلو بایت
ID:	147181
    حالا اگه قرار باشه از این ستون یه میانگین بگیریم و مثلا میانگینش بشه «خوب» چه باید کرد ؟
  • Alireza
    مدير تالار تنظيمات اكسل

    • 2011/03/01
    • 648
    • 80.00

    #2
    نوشته اصلی توسط hasa2
    چطور میشه از سلول‌هایی که غیر عددی هستند میانگین گرفت؟
    فرض کنید یه ستون داریم که مقادیر غیر عددی (عالی - خوب - متوسط و ضعیف) توشون هستند مثل تصویر زیر :
    [ATTACH=CONFIG]17250[/ATTACH]
    حالا اگه قرار باشه از این ستون یه میانگین بگیریم و مثلا میانگینش بشه «خوب» چه باید کرد ؟
    سلام
    برای محاسبات باید حتما ارزش عددی داشته باشند مرجع ارزش عددی رو براشون تعریف کنید و بر اساس اون محاسبات انجام بدید

    [CENTER][COLOR=#ffd700]​[/COLOR]تنها راهي که به شکست مي انجامد، تلاش نکردن است
    [IMG]http://www.graphics18.com/wp-content/uploads/2010/12/yellow-flower23.gif[/IMG]
    [/CENTER]

    کامنت

    • hasa2

      • 2015/01/09
      • 73
      • 56.00

      #3
      نوشته اصلی توسط Alireza
      سلام
      برای محاسبات باید حتما ارزش عددی داشته باشند مرجع ارزش عددی رو براشون تعریف کنید و بر اساس اون محاسبات انجام بدید

      بله درست می فرمایید.
      چیزی که به ذهن من رسید این بود که به اکسل بفهمونیم که
      عالی = 5
      خوب = 4
      متوسط = 3
      ضعیف = 1
      بعد خودش بر اساس تعریفی که بهش دادیم حساب کنه و نتیجه رو اعلام کنه

      اما نمیدونم چطور باید این کار رو کرد
      اینکه شما میگید باید براش ارزش عددی تعریف کرد هم فکر کن همینی میشه که من تو ذهنمه
      اما بلد نیستم ...

      کامنت

      • Alireza
        مدير تالار تنظيمات اكسل

        • 2011/03/01
        • 648
        • 80.00

        #4
        نوشته اصلی توسط hasa2
        بله درست می فرمایید.
        چیزی که به ذهن من رسید این بود که به اکسل بفهمونیم که
        عالی = 5
        خوب = 4
        متوسط = 3
        ضعیف = 1
        بعد خودش بر اساس تعریفی که بهش دادیم حساب کنه و نتیجه رو اعلام کنه

        اما نمیدونم چطور باید این کار رو کرد
        اینکه شما میگید باید براش ارزش عددی تعریف کرد هم فکر کن همینی میشه که من تو ذهنمه
        اما بلد نیستم ...
        از تابع Countif استفاده کنید
        فایل های پیوست شده
        [CENTER][COLOR=#ffd700]​[/COLOR]تنها راهي که به شکست مي انجامد، تلاش نکردن است
        [IMG]http://www.graphics18.com/wp-content/uploads/2010/12/yellow-flower23.gif[/IMG]
        [/CENTER]

        کامنت

        • hasa2

          • 2015/01/09
          • 73
          • 56.00

          #5
          نوشته اصلی توسط Alireza
          از تابع Countif استفاده کنید
          واقعا ممنونم
          همینه
          فقط اینکه الان باید اون میانگین نهایی رو که به صورت عددی نشون میده رو هم دوباره به صورت عالی خوب متوسط یا ضعیف نشون بده.

          کامنت

          • Alireza
            مدير تالار تنظيمات اكسل

            • 2011/03/01
            • 648
            • 80.00

            #6
            نوشته اصلی توسط hasa2
            واقعا ممنونم
            همینه
            فقط اینکه الان باید اون میانگین نهایی رو که به صورت عددی نشون میده رو هم دوباره به صورت عالی خوب متوسط یا ضعیف نشون بده.
            این روش رو تست کنید

            کد PHP:
            =vlookup($m$6;{1,"ضعیف";3,"متوسط";4,"خوب";5,"عالی"};2;true
            تابع یکم تغییر میکنه اینجااز فایل پیوست استفاده کنید
            فایل های پیوست شده
            [CENTER][COLOR=#ffd700]​[/COLOR]تنها راهي که به شکست مي انجامد، تلاش نکردن است
            [IMG]http://www.graphics18.com/wp-content/uploads/2010/12/yellow-flower23.gif[/IMG]
            [/CENTER]

            کامنت

            • hasa2

              • 2015/01/09
              • 73
              • 56.00

              #7
              یه مشکلی هست
              الان مثلا اگه همه گزینه ها متوسط باشن خروجی vlookup عالی نشون میده! در حالی که باید متوسط باشه قاعدتا
              مدل های دیگه هم همینطور

              به نظر میاد باید یه میانگین هم از تعداد کلی عبارت های موجود گرفته بشه که خروجی vlookup همیشه یه عددی بین 1 تا 5 باشه

              کامنت

              • Alireza
                مدير تالار تنظيمات اكسل

                • 2011/03/01
                • 648
                • 80.00

                #8
                نوشته اصلی توسط hasa2
                یه مشکلی هست
                الان مثلا اگه همه گزینه ها متوسط باشن خروجی vlookup عالی نشون میده! در حالی که باید متوسط باشه قاعدتا
                مدل های دیگه هم همینطور

                به نظر میاد باید یه میانگین هم از تعداد کلی عبارت های موجود گرفته بشه که خروجی vlookup همیشه یه عددی بین 1 تا 5 باشه
                بله درسته میانگین رو ما باید از کل بگیریم
                این تابع رو جاگین average کنید سل m6
                کد PHP:
                =SUM($M$2:$M$5)/COUNTA($A:$A
                [CENTER][COLOR=#ffd700]​[/COLOR]تنها راهي که به شکست مي انجامد، تلاش نکردن است
                [IMG]http://www.graphics18.com/wp-content/uploads/2010/12/yellow-flower23.gif[/IMG]
                [/CENTER]

                کامنت

                • hasa2

                  • 2015/01/09
                  • 73
                  • 56.00

                  #9
                  بسیار عالی !
                  تقریبا ردیفه
                  فقط برای اینکه رند هم بشه عدد یه سلول دیگه هم اضافه کردم و با دستور
                  کد:
                  =round(m6,0)
                  رندش کردم که به سمت بالا رند کنه

                  امکانش نیست دستور رند کردن رو هم تو همون سلول m6 بگونجونیم کنار اون تابع ؟ باید حتما دستور رو تو سلول دیگه بنویسیم ؟

                  کامنت

                  • Alireza
                    مدير تالار تنظيمات اكسل

                    • 2011/03/01
                    • 648
                    • 80.00

                    #10
                    نوشته اصلی توسط hasa2
                    بسیار عالی !
                    تقریبا ردیفه
                    فقط برای اینکه رند هم بشه عدد یه سلول دیگه هم اضافه کردم و با دستور
                    کد:
                    =round(m6,0)
                    رندش کردم که به سمت بالا رند کنه

                    امکانش نیست دستور رند کردن رو هم تو همون سلول m6 بگونجونیم کنار اون تابع ؟ باید حتما دستور رو تو سلول دیگه بنویسیم ؟
                    بفرمایید
                    کد PHP:
                    =round(sum($m$2:$m$5)/counta($a:$a);0
                    [CENTER][COLOR=#ffd700]​[/COLOR]تنها راهي که به شکست مي انجامد، تلاش نکردن است
                    [IMG]http://www.graphics18.com/wp-content/uploads/2010/12/yellow-flower23.gif[/IMG]
                    [/CENTER]

                    کامنت

                    • hasa2

                      • 2015/01/09
                      • 73
                      • 56.00

                      #11
                      عالی عالی
                      همه چی ردیفه
                      فقط تو تابع اون آخر به جای سمیکالن باید , باشه
                      کد:
                      [COLOR=#007700][FONT=monospace]=[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]round[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]sum[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$m[/FONT][/COLOR][COLOR=#007700][FONT=monospace]$[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]2[/FONT][/COLOR][COLOR=#007700][FONT=monospace]:[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$m[/FONT][/COLOR][COLOR=#007700][FONT=monospace]$[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]5[/FONT][/COLOR][COLOR=#007700][FONT=monospace])/[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]counta[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$a[/FONT][/COLOR][COLOR=#007700][FONT=monospace]:[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$a[/FONT][/COLOR][COLOR=#007700][FONT=monospace]),[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]0[/FONT][/COLOR][COLOR=#007700][FONT=monospace])[/FONT][/COLOR]
                      تمومه
                      بازم ممنون

                      کامنت

                      چند لحظه..