تابع VSTACK در اکسل
VSTACK یکی از توابع جدید اکسل در مجموعه توابع آرایهای است که بهطور ویژه برای الصاق (stack) کردن دو یا چند آرایه یا محدوده بهصورت عمودی طراحی شده است. این تابع در اکسلِ Microsoft 365 و اکسل برای وب (در نسخههایی که بهروزرسانیهای جدید را دریافت کردهاند) قابل استفاده است و به شما اجازه میدهد به راحتی جداول یا ستونهای مختلف را بدون نوشتن کدنویسی یا استفاده از Power Query با هم ترکیب کنید.
قواعد و سازگاری
تابع VSTACK برای محیطهایی که از توابع آرایه پویا (dynamic arrays) پشتیبانی میکنند طراحی شده است. در نسخههای قدیمیتر اکسل (مثل Excel 2016 یا قبل) این تابع وجود ندارد؛ در این موارد میتوانید از Power Query یا ماکروهای VBA استفاده کنید.
ساختار (Syntax)
| ساختار | توضیح |
|---|---|
| VSTACK(array1, [array2], …) | array1 اجباری است؛ بقیه آرایهها یا مقادیر اختیاری هستند. هر آرایه یک محدوده، جدول یا مقدار منفرد میتواند باشد. |
نکات مهم در مورد آرایهها
- هر آرایهای که با VSTACK ترکیب میشود باید دارای تعداد ستونهای سازگار باشد (ترجیحاً مشابه). در صورت اختلاف ساختار، ممکن است خطا یا نتایج نامطلوب ایجاد شود.
- خروجی VSTACK یک آرایهٔ دینامیک است که در سلولی که فرمول وارد شده، «spill» میکند و به صورت مجموعهای از سلولها نمایش داده میشود.
- میتوانید مقادیر منفرد (مانند متن یا عدد) را هم بین آرایهها قرار دهید تا ستون یا سطرهای عنوان بسازید.
مثالهای کاربردی
1) الصاق دو ستون ساده:
=VSTACK(A1:A3, B1:B3)این فرمول مقادیر A1:A3 را بالای B1:B3 قرار میدهد و یک لیست طولانیتر ایجاد میکند. خروجی در سلولی که فرمول را وارد کردهاید پدیدار میشود و تا تعداد مجموع سطرها گسترش مییابد.
2) ادغام دو جدول با یک هدر مشترک — نگه داشتن هدر تنها یک بار:
=VSTACK(Table1[#Headers], Table1[#Data], Table2[#Data])در این مثال ابتدا سطر هدر Table1 قرار داده میشود و سپس دادههای دو جدول زیر هم چسبانده میشوند. دقت کنید که این روش فرض میکند هدر Table2 شبیه Table1 است و برای جلوگیری از تکرار هدر Table2، فقط دادههای آن را میافزاییم.
3) حذف مقادیر تکراری پس از الصاق:
=UNIQUE(VSTACK(Sheet1!A2:A100, Sheet2!A2:A100))ابتدا با VSTACK دو محدوده عمودی از دو شیت مختلف را ترکیب میکنیم، سپس با تابع UNIQUE مقادیر تکراری حذف میشوند. این ترکیب برای لیست ایمیلها، شمارهها یا هر فیلد مشابه بسیار مفید است.
4) ترکیب با FILTER برای حذف سطرهای خالی:
=FILTER(VSTACK(Sheet1!A2:A100, Sheet2!A2:A100), VSTACK(Sheet1!A2:A100, Sheet2!A2:A100) "")ابتدا مقادیر را با VSTACK ترکیب میکنیم و سپس با FILTER سطرهایی که خالی هستند فیلتر میشوند تا خروجی مرتب و بدون سلولهای تهی داشته باشیم.
مثال برای ترکیب شیتهای متعدد
اگر چند شیت ماهانه داشته باشید (مثلاً Jan، Feb، Mar) و همه ستونها یکسان باشند، میتوانید همه را با یک فرمول ترکیب کنید:
=VSTACK(Jan!A1:C100, Feb!A1:C100, Mar!A1:C100)پس از وارد کردن این فرمول، تمام سطرهای هر شیت بهصورت پیوسته نمایش داده خواهد شد. در صورت نیاز به حذف هدرهای تکراری، هدر را تنها از اولین شیت شامل کنید و برای بقیه فقط دادهها را اضافه نمایید.
روشهای پیشرفته و نکات تخصصی
- استفاده از LET برای خوانایی: برای فرمولهای پیچیدهای که بارها آرایه تکرار میشود، LET خوانایی و سرعت محاسبه را بهتر میکند.
- توجه به عملکرد: ترکیب چندین محدوده بزرگ با VSTACK میتواند حافظه و زمان بازخوانی را افزایش دهد؛ در این موارد، Power Query گزینهٔ بهینهتری برای ETL و تجمیع داده است.
- هماهنگی ستونها: اگر_col counts_ متفاوت باشند، بهتر است ابتدا با فرمولهایی مانند CHOOSE یا قراردادن ستونهای کمشده با “” آنها را به یک شکل درآورید.
- ترکیب با توابع دیگر: مرتبسازی نتیجه با SORT، حذف تکراری با UNIQUE، و فیلترگذاری با FILTER معمولاً در کنار VSTACK کاربردی هستند.
محدودیتها و جایگزینها
تابع VSTACK برای بسیاری از سناریوها ساده و سریع است اما در شرایط زیر باید به گزینههای جایگزین فکر کنید:
- اگر کاربر از Excel نسخه قدیمی استفاده میکند: Power Query یا ماکرو VBA را بکار ببرید.
- اگر داده بسیار بزرگ یا پیوسته از منابع خارجی دارید: Power Query یا پایگاه داده (SQL) کارایی و کنترل بهتری ارائه میدهند.
- اگر ستونها یکنواخت نیستند: نیاز به پیشپردازش دادهها (Normalization) قبل از VSTACK وجود دارد.
نمونه بهینهسازی با LET
=LET(
a, Sheet1!A2:A100,
b, Sheet2!A2:A100,
UNIQUE(VSTACK(a,b))
)در این فرمول ابتدا دو محدوده را در نامهای موقت a و b ذخیره میکنیم و سپس آنها را با VSTACK ترکیب و با UNIQUE تکراریها را حذف میکنیم. LET خوانایی را بالا میبرد و در محاسبات پیچیده کار را سازماندهی میکند.
نتیجهگیری
VSTACK یکی از ابزارهای قدرتمند و سادهٔ ترکیب دادهها در اکسل مدرن است. برای ادغام سریع ستونها، ساخت لیستهای بلند، یا آمادهسازی داده جهت تحلیل، VSTACK همراه با توابعی مثل FILTER، UNIQUE و SORT میتواند فرآیندها را بسیار سادهتر کند. برای پروژههای بزرگ و دیتاهای ناسازگار، Power Query و روشهای ETL همچنان گزینههای قوی و قابل کنترلتری باقی میمانند.
آیا این مطلب برای شما مفید بود ؟




