تابع ISOWEEKNUM در اکسل
تابع ISOWEEKNUM در اکسل تعداد هفتهٔ مربوط به یک تاریخ را بر اساس استاندارد بینالمللی ISO-8601 بازمیگرداند. این استاندارد تعریف میکند که هفتهها از دوشنبه شروع میشوند و «هفتهٔ اول» سال، هفتۀ حاوی 4 ژانویه (یا بهبیان دیگر هفتۀ دارای اولین پنجشنبهٔ سال) است. نتیجهٔ تابع یک عدد بین 1 تا 52 یا 53 خواهد بود که برای گزارشدهی، تحلیلهای زمانی و همسانسازی دادهها بین سازمانها بسیار مفید است.
نحو (Syntax) و پارامترها
نحو ساده است:
- ISOWEEKNUM(serial_number)
- serial_number: تاریخ یا ارجاع به سلولی که حاوی تاریخ است. اکسل تاریخ را بهصورت سریال داخلی در نظر میگیرد.
مثال فرمولی در اکسل:
=ISOWEEKNUM(A2)در نسخههای فارسی اکسل گاهی لازم است جداکننده را نقطهویرگول بگذارید: =ISOWEEKNUM(A2) (بسته به تنظیمات منطقهای).
چه چیزی ISOWEEKNUM را متفاوت میکند؟
- شروع هفته: دوشنبه (در مقابل برخی سیستمها که یکشنبه را شروع هفته در نظر میگیرند).
- تعریف هفتهٔ اول: هفتۀ شامل 4 ژانویه یا اولین پنجشنبه سال.
- قابلیت بازگشت شمارهٔ هفتهای که ممکن است به سال قبلی اختصاص داشته باشد (مثلاً 1 تا 3 ژانویه ممکن است در هفتهٔ 52 یا 53 سال قبل بیفتند).
مثالهای عملی
چند مثال عملی برای درک بهتر:
| تاریخ | فرمول | خروجی ISOWEEKNUM | توضیح |
|---|---|---|---|
| 2021-01-01 | =ISOWEEKNUM(DATE(2021,1,1)) | 53 | این تاریخ به هفتۀ 53 سال 2020 متعلق است (ISO-Week-Year متفاوت است). |
| 2021-01-04 | =ISOWEEKNUM(DATE(2021,1,4)) | 1 | این تاریخ آغاز هفتۀ اول سال 2021 بر اساس ISO است. |
| 2022-12-31 | =ISOWEEKNUM(DATE(2022,12,31)) | 52 | پایان سال که به هفتۀ 52 همان سال تعلق دارد. |
نکات مهم و موارد کاربرد
- در گزارشهای مالی و برنامهریزی پروژه که استاندارد ISO مدنظر است، از ISOWEEKNUM استفاده کنید تا هفتهها بین سیستمها همسان شوند.
- برای گروهبندی در PivotTableها، بهتر است یک ستون کمکی شامل شمارهٔ هفته (با ISOWEEKNUM) و یک ستون جداگانه با «سال ISO» اضافه کنید تا هفتههای انتهای سال بهدرستی تفکیک شوند.
- توجه کنید که ISOWEEKNUM فقط شمارهٔ هفته را برمیگرداند، نه «سال ISO»؛ بنابراین برای مرتبسازی درست از ترکیب سال و شماره هفته استفاده کنید.
محاسبهٔ سال ISO (چرا به آن نیاز داریم؟)
چون بعضی تاریخها (مثلاً 1 تا 3 ژانویه) ممکن است به هفتهٔ آخر سال قبل تعلق داشته باشند، برای تحلیل باید سال ISO را نیز محاسبه کنیم. فرمول متداول برای بهدست آوردن سال ISO بهصورت زیر است:
=YEAR(A2 + 4 - WEEKDAY(A2, 2))این فرمول سال مربوط به هفتهٔ ISO تاریخ در سلول A2 را برمیگرداند. تابع WEEKDAY با نوع 2 باعث میشود هفته از دوشنبه شمارش شود (دوشنبه=1).
نمونهٔ ترکیبی برای ستونهای کمککننده
برای داشتن یک شناسه یکتا برای دستهبندی بر اساس سال و هفته میتوانید دو ستون بسازید:
- ستون A: تاریخ
- ستون B: شماره هفته ISO — =ISOWEEKNUM(A2)
- ستون C: سال ISO — =YEAR(A2 + 4 – WEEKDAY(A2, 2))
- ستون D: شناسهٔ ترکیبی — =C2 & “-” & TEXT(B2, “00”)
چهکار کنیم اگر ISOWEEKNUM در نسخهٔ اکسل شما موجود نیست؟
تابع ISOWEEKNUM از اکسل 2013 به بعد و در نسخههای Excel for Microsoft 365 در دسترس است. اگر در نسخهٔ قدیمیتر هستید، دو راه دارید:
- استفاده از فرمول پیچیدهٔ محاسبه دستی (کمتر خوانا و خطاپذیر).
- ساختن یک تابع UDF ساده در VBA که الگوریتم ISO را پیادهسازی کند.
نمونهٔ UDF در VBA:
Function ISOWeekNumber(ByVal d As Date) As Integer
Dim th As Date
' یافتن پنجشنبهٔ همان هفته (معادل مرکز هفته ISO)
th = d - Weekday(d, vbMonday) + 4
' شماره هفته = تعداد هفتهها از ابتدای سال تا پنجشنبه تقسیم بر 7 + 1
ISOWeekNumber = Int((th - DateSerial(Year(th), 1, 1)) / 7) + 1
End Functionاین تابع ابتدا پنجشنبهٔ هفتهٔ مربوط به تاریخ را محاسبه میکند (چون ISO بر مبنای هفتهای که پنجشنبه را دارد تعریف میشود)، سپس تعداد هفتهها از ابتدای سال آن پنجشنبه را حساب و عدد هفته را برمیگرداند. میتوانید این UDF را در یک ماژول VBA قرار داده و در شیت مثل تابع عادی صدا بزنید: =ISOWeekNumber(A2).
نکات پیشرفته و توصیههای خبرهپسند
- همیشه همراه با شمارهٔ هفته، «سال ISO» را هم ذخیره کنید تا سوگیری در گزارشهای مرزی سالها رخ ندهد.
- در داشبوردها و نمودارها از فیلتر ترکیبی Year-Week استفاده کنید تا دادهها بهدرستی مرتب شوند (بهخصوص در تحلیلهای زمانبندی پروژه یا فروش هفتگی).
- اگر تیم شما با سیستمهای اروپایی کار میکند، استفاده از ISO باعث همگامی بهتر با ERP و سیستمهای گزارشدهی بینالمللی میشود.
خلاصه
تابع ISOWEEKNUM یک ابزار ساده و دقیق برای بدستآوردن شماره هفته بر اساس استاندارد ISO-8601 است. این تابع برای تحلیلهای هفتگی، گزارشهای بینالمللی و هر زمانی که نیاز به تعریف یکنواخت هفتهها دارید، بسیار مناسب است. در صورت نبود تابع در نسخهٔ اکسل خود، میتوانید از فرمولهای کمکی یا UDF در VBA استفاده کنید تا منطق ISO را بازسازی کنید.
آیا این مطلب برای شما مفید بود ؟




