تابع TAKE در اکسل
تابع TAKE یکی از توابع آرایهای جدید در اکسل مایکروسافت 365 است که بهسرعت از یک آرایه یا محدوده، تعدادی سطر یا ستونِ آغازین یا پایانی را برمیگرداند. این تابع کار با دادههای پویا را ساده میکند و در بسیاری از سناریوهای گزارشگیری، نمونهبرداری و ترکیب توابع آرایهای کاربرد دارد.
نحوۀ کلی و پارامترها
| پارامتر | توضیح |
|---|---|
| array | آرایه یا محدودهای که میخواهید بخشی از آن را استخراج کنید (اجباری) |
| rows | تعداد سطرهای موردنظر (اختیاری). مقدار مثبت از ابتدا، مقدار منفی از انتها میآورد. |
| columns | تعداد ستونهای موردنظر (اختیاری). مثبت = از آغاز، منفی = از انتها |
نحوۀ تابع: TAKE(array, [rows], [columns])
قواعد مهم
- اگر rows یا columns حذف شوند، تمام سطرها/ستونها در آن بعد بازگردانده میشود.
- مقادیر مثبت از ابتدای آرایه انتخاب میشوند؛ مقادیر منفی از انتهای آرایه انتخاب میشوند.
- خروجی تابع یک آرایه دینامیک است و در سلولهای مجاور بصورت spill نمایش داده میشود.
مثالهای پایه
مثال 1: سه سطر اول یک ستون
=TAKE(A1:A10, 3)این فرمول سه مقدار اول از محدوده A1:A10 را برمیگرداند و در سه سلول متوالی نمایش میدهد.
مثال 2: دو سطر آخر از یک جدول دو ستونه
=TAKE(A1:B20, -2)این عبارت دو سطر پایانی از محدوده A1:B20 را برمیگرداند (هر دو ستون همراه).
مثال 3: دو ستون اول از یک محدوده
=TAKE(A1:D10, , 2)در اینجا rows حذف شده است تا تمام سطرها نگه داشته شوند، ولی columns=2 باعث میشود تنها دو ستون اول بازگردانده شوند.
ترکیبهای کاربردی و سناریوهای واقعی
- کپی سریع top N از دادههای مرتبشده: ترکیب TAKE با SORT برای گرفتن N رکورد بالاترین یا پایینترین.
- گرفتن نمونه از خروجی FILTER: اگر خروجی FILTER بسیار طولانی باشد، با TAKE میتوان ابتدا چند مورد را نمایش داد.
- تهیه داشبورد: نمایش 5 مورد آخر یا 10 مورد اول با استفاده از TAKE و توابع دیگر برای ارائه سریع اطلاعات.
مثال ترکیبی: گرفتن 5 رکورد برتر براساس ستونی که مرتب شده است
=TAKE(SORT(A2:B100, 2, -1), 5)ابتدا با SORT محدوده براساس ستون دوم نزولی مرتب میشود و سپس TAKE پنج سطر اول (یعنی 5 رکورد برتر) را برمیگرداند.
مثال ترکیبی دیگر: گرفتن 10 مورد اول از نتایج فیلتر شده
=TAKE(FILTER(A2:C100, C2:C100="Active"), 10)این فرمول ابتدا همه سطرهایی که در ستون C مقدار “Active” دارند فیلتر میکند و سپس 10 رکورد اول آن خروجی را بازمیگرداند.
مثال پیشرفته: استفاده با SEQUENCE برای نمونه تصادفی (نمونهبرداری ساده)
=TAKE(SORTBY(A2:A100, RANDARRAY(ROWS(A2:A100))), 5)در این فرمول با RANDARRAY و SORTBY ترتیب دادهها بهصورت تصادفی درمیآید و سپس TAKE پنج مورد اول را برمیگرداند — روشی ساده برای نمونهبرداری از دادهها بدون استفاده از ماکرو.
مقایسه با توابع قدیمی
- سابقاً برای گرفتن N سطر اول از ترکیب INDEX، SEQUENCE یا OFFSET استفاده میشد که گاهی پیچیده یا نیازمند فرمول آرایهای بود. TAKE خواناتر و مستقیمتر است.
- OFFSET مرجع بازگشتی میدهد و میتواند volatile باشد؛ TAKE غیرVolatile است و معمولاً عملکرد بهتری دارد.
جایگزین برای نسخههای قدیمی اکسل
اگر نسخه اکسل شما تابع TAKE را ندارد، میتوانید از ترکیبات زیر استفاده کنید:
=A1:INDEX(A1:A10, 3)این ساختار یک محدوده ثابت از A1 تا A3 میسازد. همچنین برای آرایهها میتوان از INDEX همراه با SEQUENCE استفاده کرد:
=INDEX(A1:A10, SEQUENCE(3))اما توجه داشته باشید در نسخههای قدیمیتر ممکن است نیاز به فرمولهای آرایهای (Ctrl+Shift+Enter) باشد و خروجی به صورت پویا spill نکند.
نکات کاربردی و بهینهسازی
- TAKE وقتی با توابع دیگر آرایهای ترکیب میشود (مثل FILTER یا SORT) بسیار قدرتمند است؛ ولی در کار با مجموعههای بسیار بزرگ، مرتبسازیهای پیچیده میتواند زمانبر باشد.
- برای خوانایی فرمولها، نامهای محدوده (Named Ranges) را استفاده کنید؛ بهویژه در داشبوردها.
- در گزارشهای پویا، استفاده از TAKE بهجای OFFSET یا فرمولهای پیچیده باعث نگهداری سادهتر و خطای کمتر میشود.
محدودیتها
- تابع TAKE در برخی نسخههای قدیمیتر اکسل وجود ندارد؛ برای استفاده باید از Excel for Microsoft 365 یا نسخههایی که توابع جدید ارایهای را پشتیبانی میکنند بهره ببرید.
- اگر اندازه rows یا columns از ابعاد آرایه بزرگتر باشد، اکسل خطا میدهد یا تمام آرایه را بازمیگرداند بسته به نسخه؛ بنابراین مقادیر ورودی را کنترل کنید.
خلاصه و جمعبندی
TAKE یک ابزار ساده اما بسیار مفید برای استخراج بخشی از آرایهها در اکسل است. با قواعد ساده مثبت/منفی برای انتخاب از ابتدا یا انتها، و قابلیت ترکیب با توابعی مثل SORT و FILTER، میتواند گردشکارهای گزارشدهی و پردازش داده را بسیار سادهتر و خواناتر کند. در عین حال برای کاربران نسخههای قدیمیتر، جایگزینهایی با INDEX و SEQUENCE وجود دارد اما TAKE از لحاظ خوانایی و عملکرد معمولاً برتر است.
آیا این مطلب برای شما مفید بود ؟




