میانگین آرایه ای با رنج پویا روی آرایه

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • miillad

    • 2019/03/28
    • 31
    • 39.00

    پرسش میانگین آرایه ای با رنج پویا روی آرایه

    سلام دوستان

    میخوام اطلاعات یک آرایه مثلا 1000 عنصره رو از اولین داده موجود در آرایه به صورت 10 عنصری میانگین بگیریم و خروجی رو هم به صورت آرایه ای نمایش بدیم.
    یعنی در اولین عدد خروجی میانگین که به صورت آرایه ای هست، میانگین از خانه اول تا دهم ارایه اصلی رو میده، و بعد مجدد از خانه دوم تا خانه یازدهم آرایه اصلی رو میانگین میگیره و خروجی رو میذاره تو خانه دوم آرایه و همینطور تا اخر ارایه اصلی رو میانگین میگیره و میذاره تو خروجی آرایه و بعد کل آرایه ساخته شده رو نمایش میده
    در واقع این فرمول روی یک سلول اکسل نوشته میشه اما خروجی به صورت سطر ظاهر میشه(اکسل 365)

    خودم یه مقدار روش کار کردم ولی به نتیجه نرسیدم،پیچیده تر از اونی بود که فکر میکردم
  • mohammad_ashooryan

    • 2014/08/13
    • 480
    • 80.00

    #2
    سلام اگه خروجی رو به صورت سطری میخواین:
    کد PHP:
    =mmult(sequence(1,10,1,0),index(a:a,transpose(sequence(count(a:a)/10,10,1,1)))/sequence(10,COUNT(A:A)/10,10,0)) 
    و اگه به صورت ستونی میخواین:
    کد PHP:
    =mmult(index(a:a,sequence(count(a:a)/10,10,1,1))/sequence(COUNT(A:A)/10,10,10,0),sequence(10,1,1,0)) 
    فایل های پیوست شده
    Last edited by mohammad_ashooryan; 2023/12/12, 11:29.

    کامنت

    • miillad

      • 2019/03/28
      • 31
      • 39.00

      #3
      آقا ممنون. فقط یه مشکلی هست، این برنامه میانگین رو به صورت فواصل 10 تایی میانگین میگیره.یعنی از فاصله اندیس 1 تا 10 یه میانگین میگیره،بعد از 11 تا 20 یه میانگین دیگه تا آخر
      اما من میخوام به صورت سلول به سول بیاد جلو، یعنی از اندیس 1 تا 10 یه میانگین بگیره، اما میانگین بعدی میشه از فاصله اندیس 2 تا 11 و بعدی از 3 تا 12 و همینطور تا آخر

      کامنت

      • karimi6155

        • 2011/03/18
        • 43
        • 65.00

        #4
        سلام اگه درست متوجه خواسته شما شده باشم اصلا نیازی به یک فرمول آرایه ای ندارید. فقط در یک ستون میانگین مثلا a1:a10 رو بزارید و امتداد بدید تا آخر
        فایل پیوست رو ببینید.
        فایل های پیوست شده

        کامنت

        • miillad

          • 2019/03/28
          • 31
          • 39.00

          #5
          ممنون اما اینی که شما گفتید از راه حل های اولیه اکسله
          من 4 سال پیش فایلم رو ساختم اما چون 26 تا شیت دارم و کلی اطلاعات و پردازش، دارم فرمول هایی که اون موقع نوشتم رو به کمک توابع و متدهای جدید اکسل، به روز میکنم تا پردازش ها کمتر بشه(که تا الان خیلی خوب جواب داده به طوری که تاخیر پردازش از 5 ثانیه رسیده به 3 ثانیه)
          مثل توابع آرایه ای،تعریف متغیر،و یه سری موارد دیگه

          کامنت

          • mohammad_ashooryan

            • 2014/08/13
            • 480
            • 80.00

            #6
            سلام
            بالاخره تونستم این حالتی که مد نظر شما بود رو هم حل کنم. خدمت شما :
            کد HTML:
            =mmult(index(a:a,sequence(((count(a:a)/10-1)*10+1),10)+mmult(sequence(((count(a:a)/10-1)*10+1),1,0,-9),sequence(1,10,1,0)))/10,sequence(10,1,1,0))
            Last edited by mohammad_ashooryan; 2023/12/18, 23:04.

            کامنت

            • miillad

              • 2019/03/28
              • 31
              • 39.00

              #7
              ایول
              اقا عالی بود، خدا قوت.
              فقط اگر امکانش هست برای سطرش رو هم بسازین، که داده های یک سطر رو بررسی کنه و خروجی رو هم به صورت سطر نمایش بده...
              ممنونم.

              کامنت

              • mohammad_ashooryan

                • 2014/08/13
                • 480
                • 80.00

                #8
                خواهش میکنم.
                برای داده های سطری هم کافیه محدوده داخل تابع counta رو به 1:1 تغییر بدین و برای خروجی سطری هم میتونین همین فرمول رو داخل فرمول transpose بذاررید.
                کد HTML:
                =transpose(mmult(index(1:1,sequence(((count(1:1)/10-1)*10+1),10)+mmult(sequence(((count(1:1)/10-1)*10+1),1,0,-9),sequence(1,10,1,0)))/10,sequence(10,1,1,0)))
                من تست کردم درست شد.
                موفق باشید.

                کامنت

                چند لحظه..