ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
25 visibility
موضوع: آفیس توسط:

تا به حال به این فکر کرده اید که چند روز هفته خاص در یک ماه مشخص اتفاق می افتد؟ برای برخی افراد مهم است که بدانند در ماه چند سه شنبه وجود دارد. و چه کسی نمی خواهد بداند که آیا یک ماه خاص چهار یا پنج شنبه خواهد داشت؟

اکسل شامل یک تابع ذاتی نیست که بتوانید از آن برای تعیین تعداد دفعاتی که یک روز هفته خاص در یک ماه خاص رخ می دهد استفاده کنید. با این حال، می توانید فرمول ها و توابع خود را برای انجام کار ایجاد کنید.

ابتدا فرمول زیر را در نظر بگیرید.

=4+N((WEEKDAY(DATE(YEAR($A$1),MONTH($A$1),1)))+
(DAY(DATE(YEAR($A$1),MONTH($A$1)+1,0))-28)>(7*((
WEEKDAY(DATE(YEAR($A$1),MONTH($A$1),1)))>(1+ROW()-
ROW($A$2)))+(1+ROW()-ROW($A$2))))

فرمول متکی بر تاریخ در A1 است. این تاریخ باید از ماهی باشد که می‌خواهید «تست» شود. فرمول قرار است در یک سلول در ردیف 2 کپی شود و سپس در شش سلول مستقیماً زیر آن کپی شود. برای مثال، می‌توانید این فرمول را در محدوده سلول‌های B2:B8 کپی کنید. پاسخ اول (B2) تعداد یکشنبه های ماه است، پاسخ دوم (B3) تعداد دوشنبه ها و غیره است.

اشکال این فرمول این است که از موقعیت سلول حاوی فرمول به عنوان بخشی از فرمول استفاده می کند. این به این معنی است که فرمول باید در ابتدای ردیف دوم قرار گیرد.

اشکال دیگر این است که فرمول بسیار طولانی و پیچیده است. اگر فرمول کوتاه‌تری می‌خواهید، باید به فرمول آرایه بروید. یک فرمول مفیدی که می توانید استفاده کنید، فرض می کند که سه آرگومان ارائه می کنید: سال (سلول C2)، ماه (سلول D2)، و یک روز هفته (سلول E2). با این سه مورد، فرمول زیر عالی عمل می کند:

=SUM(IF(WEEKDAY(DATE(C2, D2, ROW(INDIRECT("1:" &
DAY(DATE(C2, D2+1, 0))))))=E2, 1, 0))

به یاد داشته باشید که این یک فرمول آرایه است، به این معنی که باید با فشار دادن Shift+Ctrl+Enter آن را وارد کنید . علاوه بر این، مقدار روز هفته ای که در سلول E2 وارد می کنید باید در محدوده 1 تا 7 باشد، جایی که 1 یکشنبه، 2 دوشنبه و غیره است.

فرمول عالی دیگری که می توانید استفاده کنید موارد زیر است:

=NETWORKDAYS.INTL(DATE(YEAR(A1),MONTH(A1),1),EOMONTH(A1,0),
REPT("1",B1-1) & "0" & REPT("1",7-B1))

این فرمول تعمیم یافته تنها به دو مقدار نیاز دارد تا به درستی کار کند. اولی تاریخی است که در ماه است که می خواهید تجزیه و تحلیل کنید. این به سلول A1 می رود. در سلول B1 باید نشانگر روزهای هفته را که می خواهید شمارش کنید قرار دهید. این مقدار با فرمول قبلی متفاوت است - در حالی که هنوز باید در محدوده 1 تا 7 باشد، 1 دوشنبه، 2 سه شنبه و غیره است.

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

Function MonthWeekDays(dDate As Date, iWeekDay As Integer)
    Dim dLoop As Date

    If iWeekDay < 1 Or iWeekDay > 7 Then
        MonthWeekDays = CVErr(xlErrNum)
        Exit Function
    End If
    MonthWeekDays = 0
    dLoop = DateSerial(Year(dDate), Month(dDate), 1)
    Do While Month(dLoop) = Month(dDate)
        If WeekDay(dLoop) = iWeekDay Then _
          MonthWeekDays = MonthWeekDays + 1
        dLoop = dLoop + 1
    Loop
End Function

شما از تابع با وارد کردن موارد زیر در یک سلول استفاده می کنید:

=MonthWeekDays(A1,4)

در این استفاده، اولین آرگومان (سلول A1) حاوی تاریخ در ماه مورد ارزیابی است. آرگومان دوم یک مقدار عددی است که نشان دهنده روز هفته است که می خواهید شمارش کنید. این مقدار باید در محدوده 1 تا 7 باشد که 1 یکشنبه، 2 دوشنبه و غیره است.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

185 نفر آنلاین
0 عضو و 185 مهمان در سایت حاضرند
بازدید امروز: 13477
بازدید دیروز: 13001
بازدید کل: 19467770
...