تابع BYROW در اکسل
تابع BYROW یکی از توابع جدید اکسل است که در محیطهای پشتیبانیکننده آرایههای پویا (مثل Microsoft 365 و Excel for Web و Excel 2021 به بالا) در دسترس است. این تابع به شما اجازه میدهد یک عمل (با کمک LAMBDA) را روی هر ردیف از یک جدول یا محدوده اعمال کنید و خروجیای شامل یک مقدار برای هر ردیف دریافت کنید.
نحوهٔ عملکرد کلی
ساختار پایه تابع به صورت زیر است:
=BYROW(array, lambda)در اینجا array محدودهی دادهها و lambda یک LAMBDA است که یک پارامتر میگیرد (که نمایندهٔ ردیف فعلی خواهد بود) و مقداری را برمیگرداند. نتیجهٔ BYROW یک آرایه عمودی است که به تعداد ردیفهای array مقدار دارد.
مثالهای واقعی و کاربردی
جمع سطر به سطر
=BYROW(A1:C5, LAMBDA(r, SUM(r)))این فرمول مجموع هر ردیف از محدودهٔ A1:C5 را حساب میکند و یک ستون خروجی شامل مجموع هر ردیف را برمیگرداند. این روش نسبت به نوشتن SUM در ستونهای کمکی سریعتر و خواناتر است.
شمارش مقادیر بزرگتر از آستانه در هر ردیف
=BYROW(A2:D10, LAMBDA(r, COUNTIF(r,">5")))با این فرمول برای هر ردیف تعداد سلولهایی که بزرگتر از 5 هستند محاسبه میشود. این روش مخصوصاً در بررسی دادههای آنالیز کیفیت یا فرمهای پاسخ کاربرد دارد.
میانگین وزنی سطرها
=BYROW(A2:C10, LAMBDA(r, SUMPRODUCT(r, $E$1:$G$1) / SUM($E$1:$G$1)))اگر وزنهای ستون در ردیف E1:G1 قرار داشته باشند، این فرمول میانگین وزنی هر ردیف را محاسبه میکند. استفاده از SUMPRODUCT درون LAMBDA راهی ساده برای اعمال وزنها بر هر ردیف است.
ترکیب مقادیر سطر به شکل رشته
=BYROW(A2:C4, LAMBDA(r, TEXTJOIN("-", TRUE, r)))این نمونه برای مواقعی مناسب است که بخواهید فیلدهای هر ردیف را به یک رشته دلخواه تبدیل کنید — مثلاً ساخت شناسه یا کلید ترکیبی از چند ستون.
نکات پیشرفته و بهینهسازی
- استفاده از LET: اگر در LAMBDA محاسباتی تکراری دارید، از LET برای ذخیرهٔ نتایج میانی استفاده کنید تا کارایی افزایش یابد. مثال:
=BYROW(A2:C1000, LAMBDA(r, LET(s, SUM(r), s/COUNTA(r))))در این مثال SUM(r) تنها یک بار محاسبه میشود و سپس در محاسبهٔ میانگین استفاده میشود.
- اجتناب از توابع پرهزینه: توابعی مانند INDIRECT یا volatileها میتوانند باعث کندی شوند؛ در محدودههای بزرگ مراقب باشید.
- ترکیب با توابع دیگر: BYROW را میتوان با FILTER، SORT یا UNIQUE ترکیب کرد تا خروجیهای دینامیک و مرتبشده تولید شود.
مثال ترکیبی: محاسبهٔ میانگین سطر فقط برای اعداد مثبت
=BYROW(A2:D20, LAMBDA(r, LET(p, FILTER(r, r>0), IFERROR(AVERAGE(p), 0))))این فرمول ابتدا فقط مقادیر مثبت را از ردیف جدا میکند و سپس میانگین آنها را محاسبه میکند. اگر ردیف هیچ مقدار مثبتی نداشته باشد، با IFERROR مقدار 0 برمیگردد.
مقایسه با روشهای سنتی
| موضوع | روش سنتی | مزیت BYROW |
|---|---|---|
| نوشتن فرمول سطری | کپی/پیست یا فرمولهای آرایهای قدیمی | یک فرمول واحد برای تمام ردیفها، خواناتر و پویا |
| قابلیت ترکیب با LAMBDA | محدودتر، نیاز به ستونهای کمکی | قابلیت تعریف منطق پیچیده داخل LAMBDA |
محدودیتها و نکات سازگاری
- تابع BYROW فقط در نسخههای جدید اکسل (Microsoft 365، Excel for Web، Excel 2021+) و محیطهایی که از آرایههای پویا و LAMBDA پشتیبانی میکنند قابل استفاده است. در نسخههای قدیمیتر دسترسی وجود ندارد.
- خروجی BYROW به صورت آرایهای پویاست و در صورت فضای کافی در شیت، نتایج به صورت خودکار spill میشوند؛ پس موقع قرار دادن فرمول جای خالی کافی را در نظر بگیرید.
- برای محدودههای بسیار بزرگ مراقب عملکرد باشید؛ استفاده از LET و حذف محاسبات تکراری کمک میکند.
راهنمای عملیاتی و نکات پایانی
- برای دیباگ کردن LAMBDA داخل BYROW، گاهی بهتر است LAMBDA را جداگانه امتحان کنید یا از یک ردیف نمونه با INDEX به عنوان آرگومان استفاده کنید.
- اگر نیاز دارید خروجی چند ستونی برای هر ردیف داشته باشید، معمولاً بهتر است LAMBDA مقدار مرکبی (مثلاً TEXTJOIN یا ساختار دادهای) برگرداند یا به جای BYROW از روشهای ترکیبی مانند MAP/MAKEARRAY در صورت نیاز استفاده کنید.
- با ترکیب BYROW و توابعی مانند FILTER/SUMPRODUCT میتوانید محاسبات پیچیدهٔ سطری را بدون اضافه کردن ستونهای کمکی انجام دهید که نگهداری و خوانایی فایل را بهبود میبخشد.
BYROW یک ابزار قدرتمند برای انجام محاسبات سطری در اکسل مدرن است؛ با یادگیری LAMBDA و ترکیبهای مناسب میتوانید بسیاری از کارهای تکراری و پیچیده را با یک فرمول پویا و قابل نگهداری جایگزین کنید.
آیا این مطلب برای شما مفید بود ؟




