PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پرسش: میانگین با دامنه پویا



miillad
2023/08/13, 19:38
سلام دوستان وقت خوش
همونطور که میدونیم، میتونیم با تابع average از یه محدوده میانگین بگیریم.
من چندین هزار سطر داده دارم که هر سطر حدود چند هزار سلول داره که هر روز هم بیشتر میشه، که میخوام با یه پریود ثابت میانگین بگیرم.
مشکلی که هست اینه که بعضی سلول های داخل هر سطر، به صورت پراکنده خالی هست،و این مشکل باعث میشه که نتونم پریود میانگینم رو ثابت در نظر بگیرم.
میتونم با 3 تا سطر کمکی بیام و تمام سلولهای خالی رو از لابه لای داده ها حذف کنم،بعد میانگین بگیرم، اما چون تعداد سطرها زیاده، عملا این کار فشار پردازشی و حجمی زیادی رو به نرم افزار تحمیل میکنه.

میخواستم بدونم کسی راهکاری داره که با توابع(و نه دستی) بشه این میانگین رو گرفت بدون استفاده از سطر و ستون کمکی.

یعنی فرض کنید ما میخوایم یه میانگین از محدوده 100 سلول که داده دارند انجام بدیم، اما اگر کل این 100 سلول رو بگیریم، ممکنه چند تا سلول داخلش خالی باشه و عملا میانگین 100 عنصره نمیشه و کمتر میشه.
میخوایم میانگین رو جوری در نظر بگیریم، که محدوده رو اونقدر طی کنه تا زمانی که تعداد 100 سلول پر رو بتونه تو حافظه خودش داشته باشه، اون وقت ازش میانگین بگیره.
فکر میکنم توضیح زیاد دادم اما برای درک بهتر مثال بزنم
فرض کنید از هر سلول که شروع میکنیم، به اندازه 100 سلول قبل میخوایم میانگین بگیریم، اما چون بعضی از این سلول ها خالی هست، عملا این رنج ثابت گرفتن اعداد غلطی رو برامون برمیگردونه، ما باید اونقدر این سلول های قبلی رو بریم عقب تا تعداد 100 عنصر مورد نظر برای میانگین رو پیدا کنیم

در واقع دامنه میانیگن دیگه ثابت نیست، پویاست اونم با توجه به تعداد سلول های پر

smartman
2023/08/15, 03:28
اگر اکسل 2021 دارید، این فایل نمونه را بررسی کنید

miillad
2023/08/16, 11:19
اگر اکسل 2021 دارید، این فایل نمونه را بررسی کنید

ممنون بابت پاسخ، اکسل من ورژن 2019 هست نمیدونم مشکلی ایجاد میکنه یا نه.
اینی که ساختین، پریود رو روی 10 گذاشتم مقادیر صفر شد، فکر کنم به خاطر همین نسخه 2019 باشه

miillad
2023/08/18, 22:45
اگر اکسل 2021 دارید، این فایل نمونه را بررسی کنید

اقا عالی.
اکسل 2021 نصب کردم قشنگ راه افتاد همون چیزی که میخواستم ساختید.ممنونم.
فقط یه زحمت دیگه داشتم
میخوام این اطلاعات رو از یه شیت دیگه بخونم.
به این صورت که انتهای دامنه میانگین رو شماره اخرین سلول پر سطری که براش تعیین کردیم، که در یک شیت دیگه هست، در نظر بگیره تا یه تعداد دلخواه،مثلا 300 تا سلول
چون اون شیتی که دارم ازش میانگین میگیرم، در واقع یه دیتابیس هست، و هر روز هم یه ستون جدید اضافه میشه،اما ستونی از ابتدا کسر نمیشه
برای همین میخام مثلا اگه یه میانگین 50 میخوایم بگیریم، نهایتا تا 200 تا سلول رو بررسی کنه و سلولهای خالی رو مطابق همون روش قبل در نظر نگیره، و بیشتر از این نره عقب
منظورم تغییر این قسمته filter($a1:a1, $a1:a1>0) که کل سطر بررسی نشه، فقط همون تعداد دلخواهی که بهش میدم از اخرین سلول پر حساب کنه
ممنون بازم

miillad
2023/08/19, 01:09
من اینجوری نوشتم، و جواب میده، منتهی احساس میکنم ساده تر هم میشه نوشت این خیلی شلوغ شد انگار

=AVERAGE(INDEX(FILTER(
OFFSET('Archives'!A1,1,COUNTA('Archives'!1:1)-200,,200),
OFFSET('Archives'!A1,1,COUNTA('Archives'!1:1)-200,,200)>0), SEQUENCE(50,,COUNT(FILTER(
OFFSET('Archives'!A1,1,COUNTA('Archives'!1:1)-200,,200),
OFFSET('Archives'!A1,1,COUNTA('Archives'!1:1)-200,,200)>0)),-1)))