ویژگی تصویر

تابع SEQUENCE در اکسل — راهنمای کامل و کاربردی

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

تابع SEQUENCE یکی از توابع قدرتمند در اکسل با پشتیبانی از آرایه‌های پویا (Dynamic Arrays) است که امکان تولید سریع فهرست‌های عددی به صورت ردیفی یا ستونی (یا ماتریسی) را می‌دهد. در این مقاله به صورت گام‌به‌گام نحوۀ استفاده، مثال‌های واقعی، ترکیب با توابع دیگر و نکات حرفه‌ای را توضیح می‌دهیم.

سینتکس و پارامترها

پارامترمعنی
rowsتعداد ردیف‌ها (اجباری)
columnsتعداد ستون‌ها (اختیاری، پیش‌فرض 1)
startعدد شروع (اختیاری، پیش‌فرض 1)
stepگام یا افزاینده بین مقادیر (اختیاری، پیش‌فرض 1)

مثال‌های ساده

  • تولید 10 عدد متوالی از 1 تا 10: =SEQUENCE(10)
  • تولید ماتریس 3×4: =SEQUENCE(3,4)
  • شروع از 100 و گام 10، تولید 5 عدد: =SEQUENCE(5,1,100,10)
=SEQUENCE(5,1,100,10)

این فرمول یک ستون شامل 5 مقدار تولید می‌کند: 100، 110، 120، 130 و 140. پارامترها به ترتیب rows=5، columns=1، start=100 و step=10 هستند.

مثال: تولید شماره‌های ردیف داینامیک برای داده‌های فیلترشده

=SEQUENCE(ROWS(FILTER(A2:A100, B2:B100="Yes")))

این فرمول به کمک FILTER، ردیف‌هایی که شرط در ستون B برابر “Yes” دارند را استخراج می‌کند و سپس SEQUENCE تعداد آن‌ها را می‌گیرد تا شماره‌های ترتیبی (1،2،3…) برای نتایج فیلترشده تولید شود. مفید برای شماره‌گذاری گزارش‌ها یا لیست‌های دینامیک.

کاربردهای مفید و سناریوهای واقعی

  • تولید تاریخ‌های متوالی: ترکیب با تابع DATE یا TODAY برای ساخت تقویم کوچک یا لیست تاریخ‌ها.
  • ایجاد شناسه (ID) یا شماره فاکتور با فرمت ثابت: ترکیب با TEXT برای قالب‌بندی.
  • ایجاد ماتریس برای محاسبات ماتریسی یا تولید داده‌های تست.
  • استفاده به عنوان آرایه اندیس در INDEX یا MATCH برای محاسبات پیشرفته.
=TEXT(SEQUENCE(10,1,1000,1),"INV0000")

این فرمول 10 شناسه تولید می‌کند که از 1000 شروع شده و هر بار یکی افزایش می‌یابد، سپس با تابع TEXT قالب‌بندی می‌شود تا شکل “INV1000” و سپس “INV1001” و … به‌دست آید. مناسب برای تولید شماره فاکتور یا کد کالا.

مثال تولید تقویم هفتگی (یک هفته)

=SEQUENCE(7,1,DATE(2025,11,1),1)

اینجا SEQUENCE هفت تاریخ متوالی را از 1 نوامبر 2025 تولید می‌کند. با اعمال قالب تاریخ بر روی سلول‌ها، می‌توانید یک ستون تاریخ هفت روزه داشته باشید. اگر بخواهید هفته‌ای از هر ماه بسازید، می‌توان از EOMONTH و تنظیمات بیشتر استفاده کرد.

ساخت تقویم ماهیانه (نمونه پیشرفته)

فرمول کامل تقویم ماهیانه ممکن است طولانی باشد؛ ایدهٔ کلی این است که با SEQUENCE ماتریس 6×7 (6 هفته × 7 روز) بسازیم و با استفاده از تابع WEEKDAY تاریخ شروع هر ماه و OFFSET یا محاسبه عددی، سلول‌ها را با روزهای مربوطه پر کنیم. نمونهٔ ساده‌شده:

=LET(
 startDate, DATE(2025,11,1),
 startOffset, WEEKDAY(startDate,2)-1,
 days, SEQUENCE(6,7,1-startOffset,1),
 IF((days>DAY(EOMONTH(startDate,0)))+(days<1), "", days)
)

این فرمول (با استفاده از LET) یک ماتریس 6×7 تولید می‌کند که روزهای ماه را در جای مناسب قرار می‌دهد و خانه‌هایی خارج از محدودهٔ ماه را خالی می‌گذارد. توضیح: ابتدا offset شروع ماه محاسبه می‌شود، سپس SEQUENCE اعدادی از (1-startOffset) تا آخر (به صورت ماتریسی) می‌سازد و در نهایت مقادیر نامناسب را با رشته خالی پاک می‌کند.

نکات درباره خطاها و سازگاری

  • تابع SEQUENCE در نسخه‌های Excel که از Dynamic Arrays پشتیبانی می‌کنند مانند Excel for Microsoft 365 و Excel 2021 در دسترس است. در نسخه‌های قدیمی‌تر (مثل Excel 2016 بدون به‌روزرسانی) وجود ندارد.
  • ممکن است خطای #SPILL! رخ دهد اگر فضای لازم برای خروج آرایه اشغال شده باشد؛ کافی است سلول‌های اطراف را پاک کنید یا فرمول را در مکان مناسب قرار دهید.
  • اگر پارامترها عددی نامعتبر باشند (مانند rows<=0)، ممکن است خطای #VALUE! یا تولید آرایهٔ خالی داشته باشید؛ بهتر است از چک‌های شرطی یا تابع MAX استفاده کنید.

تکنیک‌ها و نکات حرفه‌ای

  • برای تولید شمارهٔ مرتب برای هر ردیف پرشده در یک جدول: =SEQUENCE(ROWS(Table1)) یا =SEQUENCE(COUNTA(A:A)-1) برای ستون‌های بدون هدر.
  • برای تبدیل ردیف به ستون یا بالعکس از TRANSPOSE استفاده کنید: =TRANSPOSE(SEQUENCE(1,10))
  • برای تولید اعداد معکوس: از step منفی استفاده کنید: =SEQUENCE(5,1,10,-2) خروجی: 10,8,6,4,2
  • ترکیب با FILTER برای شماره‌گذاری نتایج فیلتر یا مرتب‌سازی دلخواه بسیار کاربردی است.

مقایسه با روش‌های قدیمی

قبلاً برای تولید سلسله‌مراتب از توابعی مانند ROW، INDIRECT یا فرمول‌های آرایه‌ای پیچیده استفاده می‌شد. SEQUENCE جایگزین ساده‌تر، سریع‌تر و خواناتری است و با ویژگی spill به‌طور خودکار فضای لازم را پر می‌کند.

مثال ترکیبی: جدول دینامیک با شماره مرتب و تاریخ

=LET(
 data, FILTER(A2:C100, C2:C100="Open"),
 n, ROWS(data),
 ids, TEXT(SEQUENCE(n,1,1000,1),"INV0000"),
 HSTACK(ids, data)
)

در این مثال ابتدا داده‌هایی که وضعیت‌شان “Open” است فیلتر می‌شوند، سپس با SEQUENCE شناسه‌های یکتا تولید شده و با HSTACK (در صورت پشتیبانی) به‌عنوان ستون جدید به داده‌ها اضافه می‌شود تا جدول نهایی شامل ID و داده‌ها باشد.

تابع SEQUENCE یک ابزار ساده اما قدرتمند برای تولید آرایه‌های عددی و ماتریسی است که در ترکیب با سایر توابع اکسل می‌تواند بسیاری از کارهای تکراری و پیچیده را به‌صورت دینامیک و قابل نگهداری انجام دهد. آشنایی با الگوها و ترکیبات آن باعث افزایش سرعت و دقت در گزارش‌سازی و تحلیل داده‌ها می‌شود.

نکته نهایی: همیشه محیط سلول‌های اطراف را بررسی کنید تا خطای #SPILL! رخ ندهد، و در صورت نیاز از توابع کمکی مانند LET، FILTER و TEXT برای خوانایی و قالب‌بندی استفاده کنید.

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

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