هزار و یک شب اکسل - شب سی و هفتم استفاده از تابع Count if -

Collapse
X
 
  • زمان
  • Show
Clear All
new posts
  • امين اسماعيلي
    مدير تالار ويژوال بيسيك

    • January 2013
    • 1198

    هزار و یک شب اکسل - شب سی و هفتم استفاده از تابع Count if -

    Using the COUNTIF Function
    با درود
    قصه امشب رو میخوایم یه سری موارد استفاده از این تابع رو که در یک فایل Pdf براتون اوردم رو مورد برسی قرار بدیم.
    همونطور که میدونیم توابع COUNTA و Count برای شمارش های پایه ای استفاده میشوند و اگر بخواهیم به انعطاف پذیری بیشتری در این مورد برسیم باید از Countif و یا Countifs استفاده کنیم . در مثال هایی که در فایل ذکر شده ما یه محدوده ای رو در ابتدا به نام Data نام گذاری کردیم و بعد فرمول ها رو براش نوشتیم. که دوستانی که داستان های قبل رو نخوندن یا اشنایی با نامگذاری ندارن به جای این کلمه از خود محدوده مثلا A1:A100 استفاده کنند.



    شب همگیتون خوش. والا ترسیدم دوباره تکلیف بدم خودم حل کنم ...................... شبتون شیک و مجلسی .
    فایل های پیوست شده
    در پناه خداوندگار ایران زمین باشید و پیروز
  • امين اسماعيلي
    مدير تالار ويژوال بيسيك

    • January 2013
    • 1198

    #2
    با درود
    ای بابا حیفم اومد باز خودمو گول نزنم تکلیف بدم . اما تکلیف امشب بدون استفاده از Countifs . فرض کنین توی یه ستون یه سری عدد دارین حالا عدد هایی رو که بزرگتر از 4 و کوچیکتر از 12 هستند رو به 4 روش بدست بیارین ( 1 روش مجازتون همون Countifs واسه اوانس)
    در پناه خداوندگار ایران زمین باشید و پیروز

    Comment

    • mokaram
      مدير تالار اکسل و بانک اطلاعاتی

      • February 2011
      • 1805

      #3
      آقا راه اول همون آوانسی که شما گفتی
      کد:
      =COUNTIFS(A1:A13,">4",A1:A13,"<12")
      راه دوم که به ذهنم میرسه استفاده از یه ستون کمکی ( مجاز هست دیگه ؟ ) تو b1 فرمول زیر را بنویسیم و تا b13 درگ کنیم بعد یه sum کوچولو بگیریم
      کد:
      =IF(AND(A1>4,A1<12),1,"")
      Last edited by mokaram; 2014/04/26, 10:29.

      Comment

      • Amin_D

        • December 2010
        • 398

        #4
        نوشته اصلی توسط امين اسماعيلي
        با درود
        ای بابا حیفم اومد باز خودمو گول نزنم تکلیف بدم . اما تکلیف امشب بدون استفاده از Countifs . فرض کنین توی یه ستون یه سری عدد دارین حالا عدد هایی رو که بزرگتر از 4 و کوچیکتر از 12 هستند رو به 4 روش بدست بیارین ( 1 روش مجازتون همون Countifs واسه اوانس)
        سلام

        با همین Countif فقط!
        یا از فرمول های دیگه ای هم میتونیم استفاده کنیم؟

        روش Countifs:
        کد PHP:
        =COUNTIFS(a,">4",a,"<12"
        خواستن ، توانستن است.

        Comment

        • mokaram
          مدير تالار اکسل و بانک اطلاعاتی

          • February 2011
          • 1805

          #5
          نوشته اصلی توسط Amin_D
          سلام

          با همین Countif فقط!
          یا از فرمول های دیگه ای هم میتونیم استفاده کنیم؟

          روش Countifs:
          کد PHP:
          =COUNTIFS(a,">4",a,"<12"
          استاد اسماعیلی گفتن که بدون استفاده از countifs با چهار راه ولی بعدا یه دونه آوانس دادن که بشه از countif استفاده کرد

          Comment

          • mokaram
            مدير تالار اکسل و بانک اطلاعاتی

            • February 2011
            • 1805

            #6
            راه سوم که به مخ نیم بندم رسید استفاده از تابع rank هست تو یه سلول رنکینگ عدد 4 را بدست میاریم تو سلول بعدی رنکینگ عدد 11 را بدست میاریم بعد تفاضل این دو سلول جواب مایه!!
            Last edited by mokaram; 2014/04/26, 10:29.

            Comment

            • mokaram
              مدير تالار اکسل و بانک اطلاعاتی

              • February 2011
              • 1805

              #7
              راه چهارم ( که شبیه به چرخوندن لقمه به دور دهان هست ) چند مرحله داره ( واقعا ً شاخ غولا شکستی با این راه حلت )
              اول کد زیر را تو یه ماژول وارد می کنیم
              کد PHP:
              Public Function ColorCode(rg As Range) As Integer
                  Application
              .Volatile True
                  ColorCode 
              rg.Interior.Colorindex
              End 
              Function 
              مرحله بعد کد زیر را به باتومی در شیت اختصاص میدم که بتونم به کد رنگ برسم ( من رنگ نارنجی را انتخاب کردم)
              کد PHP:
              Sub Rectangle1_Click()
              Dim c As Range
              For Each c In Sheet1.Range("a1:a100")
                  If 
              <> "" And c.Value And c.Value 12 Then
                      c
              .Select
                      With Selection
              .Interior
                          
              .Pattern xlSolid
                          
              .PatternColorIndex xlAutomatic
                          
              .Color 49407
                          
              .TintAndShade 0
                          
              .PatternTintAndShade 0
                      End With
                  End 
              If
              Next c
              End Sub 
              مرحله بعد ( به فرض اینکه اعداد من تو ستون A باشن ) تو خونه B1 کد زیر را می نویسم و درگ می کنم
              کد PHP:
              =ColorCode(A1
              و مرحله آخر با یه sumif و تقسیم تعداد به دست میاد
              کد PHP:
              =SUMIF(B1:B12,44,B1:B12)/44 

              Comment

              • امين اسماعيلي
                مدير تالار ويژوال بيسيك

                • January 2013
                • 1198

                #8
                با درود
                میبینم که حداقل یه خورده تکاپو دیدیم بلاخره . دست مریزاد
                در پناه خداوندگار ایران زمین باشید و پیروز

                Comment

                • Amin_D

                  • December 2010
                  • 398

                  #9
                  با سلام

                  حالا اگر بخواهیم با توابع Count زمان رو جمع کنیم (طبق فایل ضمیمه) چطوری امکانش هست؟


                  با تشکر
                  فایل های پیوست شده
                  خواستن ، توانستن است.

                  Comment

                  • ~M*E*H*D*I~

                    • October 2011
                    • 4374

                    #10
                    اینم یک روش دیگه

                    Click image for larger version

Name:	04-26-2014 10-39-42 ب-ظ.jpg
Views:	1
Size:	28.0 کیلو بایت
ID:	122773

                    sigpic

                    Comment

                    • امين اسماعيلي
                      مدير تالار ويژوال بيسيك

                      • January 2013
                      • 1198

                      #11
                      با درود مرسی داداش مهدی گلم و بقیه دوستان

                      خوب بریم سر جوابها
                      کد:
                      =COUNTIF(Data,">4")-COUNTIF(Data,">12")-1
                      نیایتن بگین گفته بودی کوچکتر از 12 الان گفتی تو این فرمول بزرگتر از 12 این یه تکنیکه که با تفریق بین انها بدست میاد واسه ورژن های قبل 2007 منها یکم که میدونین چون 12 تو کونت اولی میاد باید کم بشه
                      روش دوم روش ارایه ای

                      کد:
                      =SUM((Data>4)*(Data<=12))-1
                      یعنی با shift+Ctrl+Enter وترد میشه

                      روش سوم همون countifs
                      کد:
                      =COUNTIFS(Data,">4",Data,"<12")
                      روش چهارم

                      کد:
                      =INDEX(SUMPRODUCT((Data>3)*(Data<12)),1)
                      و یه سری روش کمکی هم که دوستان گفتن و شاید روش های دیگه که من تو خاطرم نیست . ممنون از همتون
                      در پناه خداوندگار ایران زمین باشید و پیروز

                      Comment

                      Working...