درخواست راهنمایی برای نوشتن یک برنامه

Collapse
X
 
  • زمان
  • نمایش
Clear All
new posts
  • scott
    • 2010/11/06
    • 2

    درخواست راهنمایی برای نوشتن یک برنامه

    سلام
    خسته نباشید.
    من نیاز به یک کد در داخل اکسل دارم که وقتی در ستون اول 3 تا عدد وارد می کنم در ردیف دوم اعداد را به ترتیب از بزرگتر به کوچکتر خودش مرتب کنه.
    اساتبد راهنمایی می فرمایید.
    با تشکر
  • shamsololama

    • 2010/02/15
    • 940

    #2
    Re: درخواست راهنمایی برای نوشتن یک برنامه

    با درود فراوان

    "وقتی در ستون اول 3 تا عدد وارد می کنم در ردیف دوم اعداد را به ترتیب از بزرگتر به کوچکتر خودش مرتب کنه"
    اگر منظور شما اینه که وقتی در ستون اول سه تا عدد وارد کنید در ستون دوم همان سه عدد را برایمان به ترتیب سورت کرده و از بزرگتر به کوچکتر مرتب کند . به دو روش می توانی این کار را انجام دهی یا تابع و یا با کدنویسی

    با کد نویسی

    کد PHP:
    Sub Macro1()
    '
    Macro3 Macro
    ' Macro recorded 2010/11/06 by security
    '

    '
        Columns("A:A").Select
        Selection.Copy
        Columns("B:B").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Selection.sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
        Range("B1").Select
    End Sub 
    با تابع از ترکیب دو فرومول index , match با تابع Rank می توانی به نتیجه برسی

    کد PHP:
     =RANK(B2,$B$2:$B$30
    و
    کد PHP:
     =INDEX($B$2:$B$31,MATCH(1,$A$2:$A$31,0)) 
    در فایل ضمیمه در شیت یک با تابع و در شیت دو با ماکرو آماده کردم
    و اگر منظور شما چیزی غیر از این بود توضیح بیشتر بدهید تا من یا دوستان جواب بدهیم

    فایل نمونه

    [attachment=95]
    فایل های پیوست شده
    Last edited by ~M*E*H*D*I~; 2014/04/27, 13:11.
    ---------------------------------------------------------------------------------------------------
    بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم (دکتر شریعتی)
    shamsololama@yahoo.com
    09177733411

    کامنت

    • scott
      • 2010/11/06
      • 2

      #3
      RE: درخواست راهنمایی برای نوشتن یک برنامه

      ممنون از راهنمایی شما دوست عزیز
      فقط میشه همین کار رو با 3 تا تابع and , if , or انجام داد ؟؟
      سپاس از لطف شما

      در مورد تابع هم میشه توضیح بدید چی کار کردید ؟ البته به ما گفتند اگر میتونید با and , if , or بنویسید

      کامنت

      • shamsololama

        • 2010/02/15
        • 940

        #4
        RE: درخواست راهنمایی برای نوشتن یک برنامه

        با دورد فراوان

        برای اینکار با تابع if و And می توانی این کار را انجام دهی ولی برای بیشتر از سه عدد به مشکل بر می خوری که به این صورت می توانی تابع را بنویسی

        سل اول از ستون دوم
        =IF(AND(A2>A3, A2>A4),A2,IF(AND(A3>A2, A3>A4),A3,A4))

        سل دوم از ستون دوم

        =IF(AND(A2<B2,A2>B4),A2,(IF(AND(A3<B2,A3>B4),A3,A4 )))
        سل سوم از ستون دوم
        =IF(AND(A2<A3,A2<A4),A2,IF(AND(A3<A2,A3<A4),A3,A4) )


        و مشکل دیگه این تابع این است که اگر اعداد تکرای و برابر باشند با خطا روبرو می شود


        در تابع قبل چون از تابع رنک استفاده کرده ایم لذا به محدودیت و یا خطا روبرو نمی شویم تابع Rank در واقع در ستون ترتیب بزرگی به کوچکی را برای ما مشخص می کند و با تابع index وMatch آن را فراخوانی می کنیم
        ولی با استفاده از Or و َAnd و If وقتی تعداد سلهایی بیشتری داشته باشیم تابع زیاد و پیچیده می شود


        تابع if در شیت سه نوشته شده
        فایل ضمیمه:


        [attachment=96]
        فایل های پیوست شده
        ---------------------------------------------------------------------------------------------------
        بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم (دکتر شریعتی)
        shamsololama@yahoo.com
        09177733411

        کامنت

        Working...