ویژگی تصویر

تابع CHOOSEROWS در اکسل — انتخاب سطرها به‌صورت پویا

  /  اکسل   /  تابع CHOOSEROWS در اکسل
بنر تبلیغاتی الف

تابع CHOOSEROWS یکی از توابع جدید مجموعه توابع آرایه‌ای در اکسل است که امکان استخراج سطرهای مشخص از یک محدوده یا آرایه را به‌صورت مستقیم و پویا فراهم می‌کند. این تابع برای ساخت گزارش‌های سفارشی، استخراج نمونه‌ها، و ترکیب با سایر توابع پویا بسیار کاربردی است.

ساختار و پارامترها

پارامترتوضیح
arrayآرایه یا محدوده‌ای که می‌خواهید از آن سطر استخراج کنید (مثلاً A1:C10).
row_num, [row_num2], …شماره(های) سطر برای استخراج. می‌تواند اعداد منفرد، آرایه‌ای از اعداد یا نتیجه توابعی مثل SEQUENCE یا XMATCH باشد.

نحوه کارکرد

تابع CHOOSEROWS براساس شمارهٔ سطرهای ورودی از آرایه داده‌شده، همان سطرها را (به ترتیب ورودی) بازمی‌گرداند. خروجی به صورت یک اسپیل (spill) آرایه‌ای خواهد بود؛ یعنی چندین سلول را هم‌زمان پر می‌کند.

مثال‌های عملی

فرض کنید داده‌ها در محدوده A1:C5 قرار دارند و می‌خواهیم سطرهای 1 و 3 را استخراج کنیم.

=CHOOSEROWS(A1:C5, 1, 3)

این فرمول سطر اول و سوم محدوده A1:C5 را بازمی‌گرداند و خروجی در سه ستون منتشر می‌شود (اسپیل می‌کند).

می‌توان شماره‌ها را به صورت آرایه یا با توابع تولید آرایه هم وارد کرد. مثال: انتخاب سطرهای 1، 3 و 5 با SEQUENCE:

=CHOOSEROWS(A1:C5, {1,3,5})
=CHOOSEROWS(A1:C5, SEQUENCE(3,1,1,2))

در مثال دوم SEQUENCE(3,1,1,2) آرایه {1;3;5} تولید می‌کند که به عنوان شماره سطر به CHOOSEROWS داده می‌شود.

انتخاب سطرهای انتهایی یا نخستین

برای انتخاب 10 سطر اول یا آخر یک محدوده می‌توانید ترکیب‌هایی مثل زیر استفاده کنید:

=CHOOSEROWS(A1:C100, SEQUENCE(10))            ' ده سطر اول
=CHOOSEROWS(A1:C100, SEQUENCE(10,1,ROWS(A1:A100)-9))  ' ده سطر آخر

در مثال دوم مقدار شروع SEQUENCE با استفاده از ROWS محاسبه شده تا از آخرین سطر به عقب برود.

مثال پیشرفته: انتخاب سطرهایی که معیار خاصی دارند

اگر بخواهید سطرهایی که در ستون A مقدار خاصی دارند استخراج کنید، می‌توانید ابتدا شمارهٔ سطرها را با XMATCH یا FILTER پیدا کرده و سپس به CHOOSEROWS بدهید. مثلاً انتخاب سطرهایی که در ستون A مقدار “فروش” دارند:

=CHOOSEROWS(A1:C100, FILTER(ROW(A1:A100)-ROW(A1)+1, A1:A100="فروش"))

شرح: FILTER شمارهٔ ردیف‌های متناسب با شرط را برمی‌گرداند (با تعدیل برای شروع از 1)، سپس CHOOSEROWS آن سطرها را از A1:C100 استخراج می‌کند.

جایگزین‌ها و سازگاری

  • تابع CHOOSEROWS در اکسل‌های جدید (Microsoft 365 و نسخه‌های آنلاین) در دسترس است و در نسخه‌های قدیمی‌تر مانند Excel 2016/2019 ممکن است وجود نداشته باشد.
  • در صورت نبود CHOOSEROWS می‌توان از ترکیب INDEX و FILTER یا از FILTER با تابع ROW استفاده کرد. مثال معادل برای انتخاب سطرهای 1 و 3:
=FILTER(A1:C5, (ROW(A1:A5)=1)+(ROW(A1:A5)=3))

شرح: عبارت منطقی داخل FILTER برای هر ردیف بررسی می‌کند که شمارهٔ آن برابر 1 یا 3 باشد؛ در نتیجه فقط ردیف‌های موردنظر برگردانده می‌شود. این روش برای نسخه‌های قدیمی‌تر که CHOOSEROWS ندارند مناسب است.

نکات مهم و خطاها

  • اگر شمارهٔ سطری که وارد می‌کنید بزرگ‌تر از تعداد سطرهای آرایه باشد یا ورودی نامعتبری باشد، تابع خطا برمی‌گرداند (بسته به نسخه اکسل ممکن است #REF! یا #VALUE! نمایش داده شود).
  • ترتیب خروجی مطابق ترتیب شماره‌های ورودی است؛ اگر بخواهید مرتب‌سازی کنید، قبل از CHOOSEROWS از توابعی مثل SORT یا SORTBY استفاده کنید یا بعد از آن خروجی را مرتب کنید.
  • CHOOSEROWS فقط سطرها را انتخاب می‌کند؛ برای انتخاب ستون‌ها از تابع CHOOSECOLS استفاده کنید.
  • این تابع با قابلیت اسپیل کار می‌کند؛ بنابراین مطمئن شوید فضای کافی برای انتشار خروجی وجود دارد و سلول‌های هدف خالی باشند.

موارد کاربردی و توصیه‌های حرفه‌ای

  • تهیه گزارش‌های پویا: استخراج سطرهای منتخب برای نمایش در داشبورد بدون نیاز به کپی/پیست دستی.
  • نمونه‌گیری و تست: انتخاب نمونه‌های تصادفی یا هر nامین سطر با ترکیب SEQUENCE و RANDBETWEEN.
  • پیش‌پردازش داده‌ها: فیلتر کردن و جمع‌آوری سطرهای مهم قبل از تحلیل یا Feed دادن به Power Query/Power BI.
  • ترکیب با XMATCH/XLOOKUP: برای یافتن ردیف‌های مطابق با جستجو و سپس استخراج کامل آن سطرها.

خلاصه

تابع CHOOSEROWS ابزاری ساده و قدرتمند برای انتخاب سطرهای مشخص از یک آرایه است که با قدرت توابع آرایه‌ای جدید اکسل ترکیب می‌شود. اگر از Microsoft 365 یا نسخه‌های جدید استفاده می‌کنید، این تابع می‌تواند بسیاری از وظایف استخراج و گزارش‌گیری را بسیار ساده و خوانا کند. در صورت محدودیت نسخه، از ترکیب‌های INDEX/FILTER/ROW به‌عنوان جایگزین استفاده کنید.

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: