محاسبه مرخصی

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • mfr

    • 2014/12/02
    • 130

    [حل شده] محاسبه مرخصی

    با سلام خدمت اساتید محترم : میخوام با زدن کد پرسنلی تو سلول h32 شیت master اطلاعات مربوط به همون پرسنل از شیت data فراخوانی بشه
    و توی تاریخ و مرخصی مربوطه نمایش داده بشن ... در ضمن حتما فرمت سلولا باید عدد با دورقم اعشار باشه ... از توابع تایم استفاده بشه هم بهتره
    ممنونم
    فایل های پیوست شده
    https://t.me/pump_upp
  • amir_ts

    • 2015/03/17
    • 1247

    #2
    با سلام
    با تابع vlookup انجام میشه .اطلاعات شیت data تو کدوم سل های شیت master فراخوان بشه؟
    [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

    کامنت

    • mfr

      • 2014/12/02
      • 130

      #3
      نوشته اصلی توسط amir_ts
      با سلام
      با تابع vlookup انجام میشه .اطلاعات شیت data تو کدوم سل های شیت master فراخوان بشه؟
      مثل فایل نمونه... فقط ساعت های مرخصی
      https://t.me/pump_upp

      کامنت

      • amir_ts

        • 2015/03/17
        • 1247

        #4
        با سلام
        چون شماره پرسنلی شما تکرار شده و نوع اطلاعات فراخوان شده با نوع اطلاعاتی که شما تو شیت master میخواهید قرار بدید متفاوت هست از تابع vlookup نمیشه استفاده کرد.
        با این فرمول تاریخ ها فراخوان میشه ولی ساعت ها (از ساعت تا ساعت) رو متوجه نشدم چطور میخواید تو یک سل با توجه به تاریخش قرار بدید!!!(فرمول آرایه ایست)

        کد PHP:
        =IF(ISNUMBER(MATCH($H$31&C$1;data!$A$2:$A$7&RIGHT(data!$B$2:$B$7;2);0));1;""
        فایل های پیوست شده
        [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4598
          • 100.00

          #5
          سلام دوست عزیز
          من فکر کنم با فرمول نویسی بشه به جواب رسید اما قدری پیچیده و اذیت کننده میشه.برای همین من پیشنهاد میکنم از VBA استفاده کنید.
          کدی که من استفاده کردم به این صورته:
          کد:
          Sub ExcelIran()
          code = Sheet7.Range("H31").Value
          Range("report").ClearContents
          Database = Range("database")
          For i = 1 To UBound(Database)
              If Database(i, 1) = code Then
                  q = Split(Database(i, 2), "/")
                  Y = q(0)
                  M = q(1)
                  D = q(2)
                  If Database(i, 6) = Sheet1.Range("G1").Value Then
                      Sheet7.Cells(2 * M, D + 2) = 1
                  Else
                      Times = Database(i, 4) - Database(i, 3)
                      Sheet7.Cells(2 * M + 1, D + 2) = Times
                  End If
              End If
          Next i
          End Sub
          تغییرات خیلی جزئی هم در فایلتون دادم. برای همین اون رو هم ضمیمه میکنم
          فایل های پیوست شده

          کامنت

          • mfr

            • 2014/12/02
            • 130

            #6
            نوشته اصلی توسط amir_ts
            با سلام
            چون شماره پرسنلی شما تکرار شده و نوع اطلاعات فراخوان شده با نوع اطلاعاتی که شما تو شیت master میخواهید قرار بدید متفاوت هست از تابع vlookup نمیشه استفاده کرد.
            با این فرمول تاریخ ها فراخوان میشه ولی ساعت ها (از ساعت تا ساعت) رو متوجه نشدم چطور میخواید تو یک سل با توجه به تاریخش قرار بدید!!!(فرمول آرایه ایست)

            کد PHP:
            =IF(ISNUMBER(MATCH($H$31&C$1;data!$A$2:$A$7&RIGHT(data!$B$2:$B$7;2);0));1;""
            ممنونم دوست عزیز... نصف مسئله حل شد فقط باید همزمان ماه و روز رو هم توی data بیاره فقط روز رو پیدا میکنه اما تو ماه مربوطه نمیاره .. مسئله همینجاست
            https://t.me/pump_upp

            کامنت

            • mfr

              • 2014/12/02
              • 130

              #7
              نوشته اصلی توسط Amir Ghasemiyan
              سلام دوست عزیز
              من فکر کنم با فرمول نویسی بشه به جواب رسید اما قدری پیچیده و اذیت کننده میشه.برای همین من پیشنهاد میکنم از VBA استفاده کنید.
              کدی که من استفاده کردم به این صورته:
              کد:
              Sub ExcelIran()
              code = Sheet7.Range("H31").Value
              Range("report").ClearContents
              Database = Range("database")
              For i = 1 To UBound(Database)
                  If Database(i, 1) = code Then
                      q = Split(Database(i, 2), "/")
                      Y = q(0)
                      M = q(1)
                      D = q(2)
                      If Database(i, 6) = Sheet1.Range("G1").Value Then
                          Sheet7.Cells(2 * M, D + 2) = 1
                      Else
                          Times = Database(i, 4) - Database(i, 3)
                          Sheet7.Cells(2 * M + 1, D + 2) = Times
                      End If
                  End If
              Next i
              End Sub
              تغییرات خیلی جزئی هم در فایلتون دادم. برای همین اون رو هم ضمیمه میکنم
              سلام استاد ... متاسفانه فایل پیوست شما اشتباه پیوست شده .. ممنونم مجددا ضمیمه فرمایید.
              https://t.me/pump_upp

              کامنت

              • Amir Ghasemiyan

                • 2013/09/20
                • 4598
                • 100.00

                #8
                نوشته اصلی توسط mfr
                سلام استاد ... متاسفانه فایل پیوست شما اشتباه پیوست شده .. ممنونم مجددا ضمیمه فرمایید.
                فکر نمیکنم اشتباه باشه. چه مشکلی داره مگه؟ من دوباره دانلود کردم مشکلی نداشت

                کامنت

                • amir_ts

                  • 2015/03/17
                  • 1247

                  #9
                  نصف مسئله حل شد فقط باید همزمان ماه و روز رو هم توی data بیاره فقط روز رو پیدا میکنه اما تو ماه مربوطه نمیاره .. مسئله همینجاست
                  با سلام
                  با یک ستون کمکی مشکل حل میشه و تو ماه مربوطه قرار میگیره.(توصیه جناب آقای قاسمیان رو مد نظر قرار بدید.)

                  کد PHP:
                  =IF(ISNUMBER(MATCH($I$31&D$1&$B2;data!$A$2:$A$7&RIGHT(data!$B$2:$B$7;2)&MID(data!$B$2:$B$7;4;2);0));1;""
                  فایل های پیوست شده
                  [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

                  کامنت

                  • mfr

                    • 2014/12/02
                    • 130

                    #10
                    نوشته اصلی توسط Amir Ghasemiyan
                    فکر نمیکنم اشتباه باشه. چه مشکلی داره مگه؟ من دوباره دانلود کردم مشکلی نداشت
                    توی تابع نویسی اشتباه نشده ... توابع نوشته شده با اسم شیتها همخونی ندارن ..... sheet7 و غیره .. ممنونم استاد
                    https://t.me/pump_upp

                    کامنت

                    • mfr

                      • 2014/12/02
                      • 130

                      #11
                      نوشته اصلی توسط amir_ts
                      با سلام
                      با یک ستون کمکی مشکل حل میشه و تو ماه مربوطه قرار میگیره.(توصیه جناب آقای قاسمیان رو مد نظر قرار بدید.)

                      کد PHP:
                      =IF(ISNUMBER(MATCH($I$31&D$1&$B2;data!$A$2:$A$7&RIGHT(data!$B$2:$B$7;2)&MID(data!$B$2:$B$7;4;2);0));1;""
                      ممنونم بزرگواری فرمودین ... فقط میمونه مدت مرخصی استفاده شده که تو قسمت ساعتی روزها باید بیاد ... فقط مدت استفاده شده مهمه مثلا 1.25 ساعت همین
                      https://t.me/pump_upp

                      کامنت

                      • Amir Ghasemiyan

                        • 2013/09/20
                        • 4598
                        • 100.00

                        #12
                        نوشته اصلی توسط mfr
                        توی تابع نویسی اشتباه نشده ... توابع نوشته شده با اسم شیتها همخونی ندارن ..... sheet7 و غیره .. ممنونم استاد
                        نه دوست عزیز اشتباهی صورت نگرفته. شما برنامه رو که اجرا کنید میبینید که به درستی کار میکنه
                        sheet7 که گفتین درواقع شماره شیتی هست که شما دارین نه اسم شیت. میشد از نام هم استفاده کرد. یا مثلا database یا report که در کدها استفاده شده در واقع محدوده ای هستند که از طریق name manager تعریف شده اند

                        کامنت

                        • mfr

                          • 2014/12/02
                          • 130

                          #13
                          نوشته اصلی توسط Amir Ghasemiyan
                          نه دوست عزیز اشتباهی صورت نگرفته. شما برنامه رو که اجرا کنید میبینید که به درستی کار میکنه
                          sheet7 که گفتین درواقع شماره شیتی هست که شما دارین نه اسم شیت. میشد از نام هم استفاده کرد. یا مثلا database یا report که در کدها استفاده شده در واقع محدوده ای هستند که از طریق name manager تعریف شده اند
                          واقعا باید به شما تعظیم کرد ... من علمنی حرفا قد سیرنی عبدا
                          https://t.me/pump_upp

                          کامنت

                          • Amir Ghasemiyan

                            • 2013/09/20
                            • 4598
                            • 100.00

                            #14
                            نوشته اصلی توسط mfr
                            واقعا باید به شما تعظیم کرد ... من علمنی حرفا قد سیرنی عبدا
                            خواهش میکنم دوست عزیز این چه حرفیه
                            کسی که چیزی بلده وظیفشه به دیگران هم یاد بده و از علمش برای حل مشکلات دیگران استفاده کنه
                            لطفا اگه پاسخ سوالتون رو دریافت کردین تاپیک رو حل شده کنید

                            کامنت

                            • mfr

                              • 2014/12/02
                              • 130

                              #15
                              نوشته اصلی توسط Amir Ghasemiyan
                              خواهش میکنم دوست عزیز این چه حرفیه
                              کسی که چیزی بلده وظیفشه به دیگران هم یاد بده و از علمش برای حل مشکلات دیگران استفاده کنه
                              لطفا اگه پاسخ سوالتون رو دریافت کردین تاپیک رو حل شده کنید
                              فقط بنا به دلایلی میخوام فرمت ساعتها عدد اعشار با دورقم اعشار باشه و توستون مدت مرخصی محاسبه بشه و با اجرای ماکرو به شیت master بره
                              توی تابع لازم نیست ساعت مرخصی محاسبه بشه فقط مدتش رو از ستون " مدت مرخصی" ( که توسط time_dif محاسبه شده ) به master منتقل کنه
                              ممنونم استاد
                              فایل های پیوست شده
                              Last edited by mfr; 2016/04/09, 03:15.
                              https://t.me/pump_upp

                              کامنت

                              چند لحظه..