هزار و یک شب اکسل - شب سی و ششم خلق یک سری از تاریخ Generating a Series of Dates

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • امين اسماعيلي
    مدير تالار ويژوال بيسيك

    • 2013/01/17
    • 1198
    • 84.00

    هزار و یک شب اکسل - شب سی و ششم خلق یک سری از تاریخ Generating a Series of Dates

    به نام خداوندگار ایران زمین
    با درود

    دلم نیومد حداقل یه داستان امشب براتون نگم هر چند نباید میگفتم ولی خوب ..............
    Generating a Series of Dates
    خلق یک سری از تاریخ
    اگر شما با داده هایی مبتنی بر زمان کار میکنید شاید نیاز داشته باشید که یک سری از از تاریخ رو توی کاربرگ خودتون ایجاد کنید . برای مثال در یک برنامه ردیابی فروش ، شما ممکن است بخواهید یک سری از تاریخ رو برای سه ماهه ی فروشتون ایجاد کنید ، البته حتما میخواین که روزهای تعطیل رو ازش صرف نظر کنید. عجله نکنین شاید الان نامفهوم باشه در مباحث جلوتر کاملا مطلب رو درک میکنین.
    Using AutoFill
    یکی از موثرترین راها برای ورود یک سری تاریخ که به فرمول نیاز نداره همین AutoFill هستش . برای این کار تاریخ اولتونو تو هر سلی که میخواین وارد کنین و سپس در حالی که کلید سمت راست موس خود را پایین نکه داشتین به سمت پایین درگ کنین و سپس ان را رها کرده . سپس از پنجره ایجاد شده Shortcut menu ایجاد شده یک فرمان رو انتخاب کنید . مانند شکل زیر.


    Click image for larger version

Name:	1.JPG
Views:	1
Size:	29.5 کیلو بایت
ID:	142069

    نکته : در بعضی مواقع ، شما نیاز دارین که دو روز رو قبل از استفاده از AutoFill وارد کنید . برای مثال ، اگر شما بخواهید که یکسری از تاریخ هایی رو که دوشنبه های متوالی رو نشون بده رو ایجاد کنید شما نیاز دارین که ابتدا دو تا دوشنبه رو وارد کنید بعد از این روش استفاده کنید و Fillday رو از پنجره بالا انتخاب کنید
    Using formulas
    روش دیگری که میتونیم با اون یک سری تاریخ رو ایجاد کنیم استفاده از فرمول ها است. مزیت استفاده از این روش نسبت به روش قبلی برای ایجاد سری تاریخ این است که شما میتوانید اولین روز رو تغییر بدین و تاریخ های بعدی به طور خودکار به روز بشوند. روز شروع سریتونو وارد کنید بعد از فرمول های که گفته میشه استفاده کنین و اون رو در ستون ی که مد نظرتونه درگ کنین .
    در مثال هایی که در ادامه مطرح میشوند فرض بر این است که شما اولین تاریخ رو در A1 وارد کرده اید و فرمول رو در A2 . سپس شما میتونین فرمول رو کپی کنین تا هر جا که نیاز دارین تو ستون .

    1. برای ایجاد یک سری تاریخ که 7 روز (یک هفته ) با هم اختلاف داشته باشه از فرمول زیر استفاده کنین :
      کد:
       =A1+7
    2. برای ایجاد یک سری با اختلاف 1 ماه از فرمول زیر :
      کد:
        =DATE(YEAR(A1),MONTH(A1)+1,DAY(A1))
    3. برای ایجاد یک سری با اختلاف یک سال از فرمول زیر :
      کد:
       =DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))
    4. برای ایجاد یک سری تاریخ که فقط روزهای کاری رو در بر بگیره ( بجز Saturdays or Sunday ) از فرمول زیر استفاده کنین . این مورد هم در این فرمول فرض شده که در سل A1 این دو روز تعطیل وارد نشده .
      کد:
       =IF(WEEKDAY(A1)=6,A1+3,A1+1)
      این فرمول یک سریال نامبر تاریخی رو بر میگردونه پس کافیه که فقط فرمت رو روی تاریخ بزارین که این کارو بلدین دیگه.
      هر چند میدونم که انجام نمیدین اما فرمول اخر رو برای ایرانیا درست کنین به فرض اینکه توابع شمسی رو هم نصب کردین . رو پنجشنبه و جمعه رو هم یا فقط جمعه رو به عنوان تعطیلی حساب کنین . هر کدومو که استفاده کردین ذکر کنین .
      البته تعطیلی ایرانیا پروپا نداره . بین اتعطیلینو و .....................

      شب همتون خوشو خرم
    Last edited by ~M*E*H*D*I~; 2014/04/25, 19:51.
    در پناه خداوندگار ایران زمین باشید و پیروز
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    #2
    دوستان کسی نیست فرمول های فوق رو شمسی کنه؟

    کاربرای ما یعنی اینقد اکسلشون ضعیفه؟
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • امين اسماعيلي
      مدير تالار ويژوال بيسيك

      • 2013/01/17
      • 1198
      • 84.00

      #3
      با درود
      خب بازم خودم میام واسه خودم جواب میدم که نگن شیرازیا .........

      فرض کنین تو سل a1 یه تاریخ شمسی که روز پنج شنبه یا جمعه (روزهای تعطیل ایرانیا ) نیستشو وارد کردین حالا برای اینکه یه سری تاریخ برای روزهای کاری درست کنین از فرمول زیر
      کد:
      =if(j_weekday(a1)=4,j_addday(a1,3),j_addday(a1,1))
      و اگر فقط روز جمعه رو روز تعطیل حساب میکنین از

      کد:
      =if(j_weekday(c1)=5,j_addday(c1,2),j_addday(c1,1))
      یادتونم نره قبلش توابع شمسی به فایلتون اظافه شده باشه.
      برای اظافه کردن یه سری با اختلاف یه هفته از

      کد:
      =j_addday(f1,7,1)
      یک ماه رو هم که میدونین میتونین از 30 روز و سال رو هم 365 روز استفاده کنین
      در پناه خداوندگار ایران زمین باشید و پیروز

      کامنت

      • Amin_D

        • 2010/12/22
        • 399

        #4
        نوشته اصلی توسط امين اسماعيلي
        به نام خداوندگار ایران زمین
        با درود

        دلم نیومد حداقل یه داستان امشب براتون نگم هر چند نباید میگفتم ولی خوب ..............
        Generating a Series of Dates
        خلق یک سری از تاریخ
        اگر شما با داده هایی مبتنی بر زمان کار میکنید شاید نیاز داشته باشید که یک سری از از تاریخ رو توی کاربرگ خودتون ایجاد کنید . برای مثال در یک برنامه ردیابی فروش ، شما ممکن است بخواهید یک سری از تاریخ رو برای سه ماهه ی فروشتون ایجاد کنید ، البته حتما میخواین که روزهای تعطیل رو ازش صرف نظر کنید. عجله نکنین شاید الان نامفهوم باشه در مباحث جلوتر کاملا مطلب رو درک میکنین.
        Using AutoFill
        یکی از موثرترین راها برای ورود یک سری تاریخ که به فرمول نیاز نداره همین AutoFill هستش . برای این کار تاریخ اولتونو تو هر سلی که میخواین وارد کنین و سپس در حالی که کلید سمت راست موس خود را پایین نکه داشتین به سمت پایین درگ کنین و سپس ان را رها کرده . سپس از پنجره ایجاد شده Shortcut menu ایجاد شده یک فرمان رو انتخاب کنید . مانند شکل زیر.


        [ATTACH=CONFIG]3155[/ATTACH]

        نکته : در بعضی مواقع ، شما نیاز دارین که دو روز رو قبل از استفاده از AutoFill وارد کنید . برای مثال ، اگر شما بخواهید که یکسری از تاریخ هایی رو که دوشنبه های متوالی رو نشون بده رو ایجاد کنید شما نیاز دارین که ابتدا دو تا دوشنبه رو وارد کنید بعد از این روش استفاده کنید و Fillday رو از پنجره بالا انتخاب کنید
        Using formulas
        روش دیگری که میتونیم با اون یک سری تاریخ رو ایجاد کنیم استفاده از فرمول ها است. مزیت استفاده از این روش نسبت به روش قبلی برای ایجاد سری تاریخ این است که شما میتوانید اولین روز رو تغییر بدین و تاریخ های بعدی به طور خودکار به روز بشوند. روز شروع سریتونو وارد کنید بعد از فرمول های که گفته میشه استفاده کنین و اون رو در ستون ی که مد نظرتونه درگ کنین .
        در مثال هایی که در ادامه مطرح میشوند فرض بر این است که شما اولین تاریخ رو در A1 وارد کرده اید و فرمول رو در A2 . سپس شما میتونین فرمول رو کپی کنین تا هر جا که نیاز دارین تو ستون .

        1. برای ایجاد یک سری تاریخ که 7 روز (یک هفته ) با هم اختلاف داشته باشه از فرمول زیر استفاده کنین :
          کد:
           =A1+7
        2. برای ایجاد یک سری با اختلاف 1 ماه از فرمول زیر :
          کد:
            =DATE(YEAR(A1),MONTH(A1)+1,DAY(A1))
        3. برای ایجاد یک سری با اختلاف یک سال از فرمول زیر :
          کد:
           =DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))
        4. برای ایجاد یک سری تاریخ که فقط روزهای کاری رو در بر بگیره ( بجز Saturdays or Sunday ) از فرمول زیر استفاده کنین . این مورد هم در این فرمول فرض شده که در سل A1 این دو روز تعطیل وارد نشده .
          کد:
           =IF(WEEKDAY(A1)=6,A1+3,A1+1)
          این فرمول یک سریال نامبر تاریخی رو بر میگردونه پس کافیه که فقط فرمت رو روی تاریخ بزارین که این کارو بلدین دیگه.
          هر چند میدونم که انجام نمیدین اما فرمول اخر رو برای ایرانیا درست کنین به فرض اینکه توابع شمسی رو هم نصب کردین . رو پنجشنبه و جمعه رو هم یا فقط جمعه رو به عنوان تعطیلی حساب کنین . هر کدومو که استفاده کردین ذکر کنین .
          البته تعطیلی ایرانیا پروپا نداره . بین اتعطیلینو و .....................

          شب همتون خوشو خرم

        سلام

        با تشکر از مطلبتون ،

        اگر Shortcut Menu بعد از درگ کردم سلول ایجاد نشه ، به نظرتون مشکل از چی میتونه باشه؟

        با تشکر
        [COLOR=#008000][SIZE=7][FONT=arial][B]خواستن ، توانستن است.[/B][/FONT][/SIZE][/COLOR]

        کامنت

        • mokaram
          مدير تالار اکسل و بانک اطلاعاتی

          • 2011/02/06
          • 1805
          • 74.00

          #5
          نوشته اصلی توسط Amin_D
          سلام

          با تشکر از مطلبتون ،

          اگر Shortcut Menu بعد از درگ کردم سلول ایجاد نشه ، به نظرتون مشکل از چی میتونه باشه؟

          با تشکر
          شما موس را پایین سلول سمت راست ببر به شکل + میشه بعد راست کلیک بعد درگ کن درست میشه منتها باید حتما موس به شکل + بشه
          [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
          [/CENTER]

          کامنت

          • Amin_D

            • 2010/12/22
            • 399

            #6
            نوشته اصلی توسط M_R_M
            شما موس را پایین سلول سمت راست ببر به شکل + میشه بعد راست کلیک بعد درگ کن درست میشه منتها باید حتما موس به شکل + بشه
            سلام

            دقیقاً همین کاری رو که پیشنهاد دادین رو قبلاً انجام میدادم ولی باکس Auto Fill Option ایجاد نمیشه!!!!!!!!!!!!!!!!!
            [COLOR=#008000][SIZE=7][FONT=arial][B]خواستن ، توانستن است.[/B][/FONT][/SIZE][/COLOR]

            کامنت

            چند لحظه..