فراخوانی مقادیر متناظر از بزرگترین مقدار یك محدودهبه شرط كوچكتر بودن از یك مقدار خاص

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ظهور 313

    • 2017/01/20
    • 244

    فراخوانی مقادیر متناظر از بزرگترین مقدار یك محدودهبه شرط كوچكتر بودن از یك مقدار خاص

    سلام و عرض ادب به همه اساتید محترم
    در ادامه سوال قبلی، یه سوال دارم
    من از این كد برای برگرداندن مقادیر متناظر با از یك مقدار در یك محدوده استفاده میكنم (كه در سوال قبلی هم توضیح دادم)
    حالا میخوام شرط رو به صورت ماكزیمم شرطی بنویسم.
    به كد پایین دقت كنید، توی این كد، خیلی راحت یك مقدار رو در محدوده تعریف شده پیدا میكنه و مقادیر متناظر اون رو برمیگردونه
    حالا میخوام اون مقداری كه قراره در یك محدوده پیدا بشه، بزرگترین عددی باشه كه از 100 كمتره (مشابه این توی خود اكسل به صورت ماكزیمم شرطی نوشته میشه. یعنی اینطوری (البته آرایه‌ای)
    =MAX(IF...

    ممنون میشم اگه راهنمایی بفرمایید
    Dim B As Range
    Dim find As Boolean
    find = False
    For Each B In Sheets("ESTEGHRAR").Range("AA13:AA100000")
    If B = ListBox1.Value And B <> "" Then


    UserForm1_ESTEGHRAR_SABT.TextBox20.Value = B.Offset(0, 13)
    UserForm1_ESTEGHRAR_SABT.TextBox2.Value = B.Offset(0, 16)

    UserForm1_ESTEGHRAR_SABT.Show
    Exit Sub
    End If


    Next
    End Sub
  • ظهور 313

    • 2017/01/20
    • 244

    #2
    كسی نمیتونه كمك كنه
    اساتید لطفا راهنمایی بفرمایند

    کامنت

    • misammisam
      مدير تالار حسابداری و اکسل

      • 2014/04/04
      • 892
      • 64.00

      #3
      سلام
      یک جا سوال بپرسید کافیه دوست عزیز
      جستجو و فراخوانی اطلاعات با دو شرط دزر دو محدوده مجزا
      [CENTER][SIGPIC][/SIGPIC]
      [/CENTER]
      [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
      [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
      [/CENTER]
      [/INDENT]

      [/FONT][/FONT][/FONT][/FONT][/FONT]
      [/CENTER]

      کامنت

      • ظهور 313

        • 2017/01/20
        • 244

        #4
        نوشته اصلی توسط misammisam
        سلام
        یک جا سوال بپرسید کافیه دوست عزیز
        جستجو و فراخوانی اطلاعات با دو شرط دزر دو محدوده مجزا
        استاد محترم، به نظرم این با سوال قبلی متفاوته و فكر میكنم فرمولش تفاوت داشته باشه

        کامنت

        • ظهور 313

          • 2017/01/20
          • 244

          #5
          سلام دوباره خدمت اساتید
          با توجه به سوالم در پست قبلی، فرمولی دارم كه دو شرط رو در دو ستون بررسی میكنه و مقدار متناظر با اون رو برمیگردونه
          مشكلم الان اینه كه میخوام یكی از شرطها به صورت ماكزیمم شرطی باشه
          یعنی
          شرط 1: در ستون a سال 1395 را پیدا كن
          شرط 2: در ستون b ، بیشتر مقدار از مقادیر سال 1395 (در ستونa) را پیدا كن
          و نهایتا، مقدار متناظر با این دو شرط را در یك تكست باكس، نمایش بده

          ممنون میشم اگه راهنمایی بفرمایید

          کامنت

          • iranweld

            • 2015/03/29
            • 3341

            #6
            با سلام

            کدهای ذیل را بررسی کنید

            کد PHP:
            Private Sub TextBox1_Change()

            TextBox2 ""

            z1 Cells(Rows.Count"A").End(xlUp).Row

            Max 
            0

            For 1 To z1

            If Val(Range("a" i)) = TextBox1 And Len(TextBox1) >= And Range("b" i) > Max Then

            Max 
            Range("b" i)

            End If

            Next

            TextBox2 
            Max


            End Sub 
            فایل های پیوست شده

            کامنت

            • ظهور 313

              • 2017/01/20
              • 244

              #7
              نوشته اصلی توسط iranweld
              با سلام

              کدهای ذیل را بررسی کنید

              کد PHP:
              Private Sub TextBox1_Change()

              TextBox2 ""

              z1 Cells(Rows.Count"A").End(xlUp).Row

              Max 
              0

              For 1 To z1

              If Val(Range("a" i)) = TextBox1 And Len(TextBox1) >= And Range("b" i) > Max Then

              Max 
              Range("b" i)

              End If

              Next

              TextBox2 
              Max


              End Sub 
              ممنون دوست عزیز، من خیلی وارد نیستم. الان توی این كد شما، آدرس شیت‌ خودم رو باید كجا وارد كنم؟

              کامنت

              • iranweld

                • 2015/03/29
                • 3341

                #8
                هر کجا عبارت Range دارید ابتداش
                کد PHP:
                Sheets("نام شیت مورد نظر")range("A" i
                اضافه کنید

                کامنت

                • ظهور 313

                  • 2017/01/20
                  • 244

                  #9
                  نوشته اصلی توسط iranweld
                  هر کجا عبارت range دارید ابتداش
                  کد PHP:
                  sheets("نام شیت مورد نظر")range("a" i
                  اضافه کنید
                  ممنون از جوابتون دوست عزیز
                  بله اینو متوجه شدم. اما الان كه نگاه میكنم، میبینم منظورم رو خوب بیان نكرده بودم فرمول شما كلا با اونی كه من می‌خواستم متفاوته. دستور شما الان یه ماكزیمم شرطیه. اما می‌خواستم یه شرط دیگه هم اضافه داشته باشه یعنی اگر ستون a مساوی با 1395 بود (مثلا)، اون‌وقت از بین مقادیر متناظرش، ماكزیممی رو برگردونه كه كمتر از یه مقدار مشخص باشه،
                  یه سوال دیگه هم دارم، همین فرمول رو میشه توی یه محدوده اجرا كرد، یعنی توی ستون a، بیشتریا مساوی مقداری رو بیاره كه كمتر از یه مقدار خاص باشه؟
                  ببخشید دیگه خیلی دارم به شما زحمت میدم

                  کامنت

                  • iranweld

                    • 2015/03/29
                    • 3341

                    #10
                    پاسخ سوال شرطی اول شما

                    سوال دوم را بیشتر توضیح بدید
                    فایل های پیوست شده

                    کامنت

                    • ظهور 313

                      • 2017/01/20
                      • 244

                      #11
                      نوشته اصلی توسط iranweld
                      پاسخ سوال شرطی اول شما

                      سوال دوم را بیشتر توضیح بدید
                      واقعا ممنونم خیلی لطف كردید و بسیار عالی.
                      فقط میشه بفرمایید اون عدد چهار كه توی شرط‌های if به كار بردید، چی هست؟

                      توضیح سوال دوم: فرض كنید یه ستون داریم كه یه تعداد سال داخل خودش داره، حالا میخوام بگم توی همون ستون، بیشترین سالی كه مساوی یا كمتر از سال 1395 هست كدومه؟

                      کامنت

                      • ظهور 313

                        • 2017/01/20
                        • 244

                        #12
                        نوشته اصلی توسط ظهور 313
                        واقعا ممنونم خیلی لطف كردید و بسیار عالی.
                        فقط میشه بفرمایید اون عدد چهار كه توی شرط‌های if به كار بردید، چی هست؟

                        توضیح سوال دوم: فرض كنید یه ستون داریم كه یه تعداد سال داخل خودش داره، حالا میخوام بگم توی همون ستون، بیشترین سالی كه مساوی یا كمتر از سال 1395 هست كدومه؟

                        سلام دوباره
                        استاد در استفادهاز این فرمولتون یه كم مشكل دارم و نمیتونم روی فایل خودم اجرا كنم
                        خط دوم و این شرط «Len(TextBox1) >= 4» برام مفهوم نیست. توی خط دوم z1 = Cells(Rows.Count, "A").End(xlUp).Row باید A رو به ستون خودم تغییر بدم؟ من فرمول رو اینطوری تغییر دادم اما جواب نمیده. میشه لطف بفرمایید ببینم مشكل كجاست؟
                        Private Sub TAR_TAHSILH()


                        z1 = Cells(Rows.Count, "O").End(xlUp).Row


                        Max = 0


                        For i = 1 To z1


                        If Val(Sheets("TAHSIL").Range("O" & i)) = TextBox1 And Len(TextBox1) >= 4 And Sheets("TAHSIL").Range("U" & i) = Max Then


                        Max = Sheets("TAHSIL").Range("U" & i)


                        End If


                        Next


                        Sheets("GOZARESH").Range("B9") = Max


                        End Sub

                        کامنت

                        • iranweld

                          • 2015/03/29
                          • 3341

                          #13
                          با سلام

                          مشکل اینجاست که برای MAX مساوی قرار دادید

                          کد PHP:
                          If Val(Sheets("TAHSIL").Range("O" i)) = TextBox1 And Len(TextBox1) >= And Sheets("TAHSIL").Range("U" i) = Max Then 
                          کد اصلاحی

                          کد PHP:
                          If Val(Sheets("TAHSIL").Range("O" i)) = TextBox1 And Len(TextBox1) >= And Sheets("TAHSIL").Range("U" i) > Max Then 
                          عدد چهاری که فرمودید
                          کد PHP:
                          Len(TextBox1) >= 
                          بدین خاطر است که در صورت ورود هر کارکتر در تکست باکس ، ماکرو شروع به جستجو میکند و در صورتیکه حجم دیتای شیت زیاد باشد زمان زیادی صرف میگردد برای جلوگیری از جستجوی بی مورد مشخص کردیم در صورتیکه تعداد کارکتر ورودی در تکست باکس اول مساوی یا بزرگتر از چهار بود شروع به جستجو نماید تا زمان کمتری CPU شما مشغول پردازش باشد
                          Last edited by iranweld; 2018/03/16, 11:13.

                          کامنت

                          چند لحظه..