گزارش گیری ریز اطلاعات در یک شیت دیگر

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

    • 2011/04/29
    • 384
    • 67.00

    [حل شده] گزارش گیری ریز اطلاعات در یک شیت دیگر

    سلام دوستان
    فرض کنید من 100 تا واحد مسکونی رو به صورت اقساطی به 100 نفر فروختم
    حالا افراد قسطاشونو میاد میدن که من در شیت Data وارد کردم (حدود 4000 سطر)
    حالا میخوام یه صورت وضعیت از ریز واریزی های هر شخص رو توی شیت (DetailReport) در قالب یه فرم بیارم که مشخص باشه در چه تاریخ های بابت چه ماهایی واریز کرده . چقدر دیگه بدهکار هستش.
    تا یک جایشو تونستم درست کنم
    که اگه اطلاعات اون واحد مسکونی رو وارد کنید نام شخص رو بیار
    دیگه بقیشو موندم چیکار کنم خودش اطلاعات اون شخص رو بیاره
    (نمیخوام از Povit Table استفاده کنم)
    ممنون میشم کمکم کنید.
    فایل های پیوست شده
  • mohammad_ashooryan

    • 2014/08/13
    • 480
    • 80.00

    #2
    سلام
    بپیوست جواب رو ارسال کردم.
    سوالی بود در خدمتم.
    فایل های پیوست شده

    کامنت

    • a.dal65

      • 2011/04/29
      • 384
      • 67.00

      #3
      ممنون آقا محمد
      الان دارم کد هاشو نگاه میکنم تا سر در بیارم.
      فقط میشه اطلاعات که میاره بر اساس اسم نباشه و بر اساس شماره واحد ، طبقه ، و بلوک باشه .
      (چون مثلا ممکنه نفری بنام "محمد" 3 تا واحد خریده تو طبقه های مختلف تو بلوک های مختلف به شماره واحد مختلف)

      کامنت

      • amir_ts

        • 2015/03/17
        • 1247

        #4
        فقط میشه اطلاعات که میاره بر اساس اسم نباشه و بر اساس شماره واحد ، طبقه ، و بلوک باشه .
        با سلام
        این فایل رو مشاهده کنید .
        فایل های پیوست شده
        [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

        کامنت

        • a.dal65

          • 2011/04/29
          • 384
          • 67.00

          #5
          ممنون از هر دو بزرگوار
          فقط آقا امیر میشه در مورد کارای تابع row توی فرمول یه توضیح کوچیک بدی که اینجا جیکار میکنه و اینکه
          سلول a1 و b1 چی هستن که هی تکرار شدن و این 1- چی هستش
          ممنون از توجه هت.

          کامنت

          • amir_ts

            • 2015/03/17
            • 1247

            #6
            با سلام
            مکانیزم فرمول اینه که با سه شرط
            واحد ، طبقه ، و بلوک ردیف رو جستجو میکنه:
            کد PHP:
            (IF((DATA!$I$2:$I$55=$D$3)*(DATA!$J$2:$J$55=$F$3)*(DATA!$K$2:$K$55=$H$3
            اگر برقرار بود ردیفش رو بده:
            کد PHP:
            (ROW(DATA!$E$2:$E$55 
            حالا 10 ردیف هست که شرط برقراره:
            باتوجه به فرمول در تابع small قرار داره.
            حالا باید پارامتر دوم تابع small رو بدیم که تک تک ردیف ها رو برگردونه:
            (ROW(a1 یعنی 1 اولین ردیف پیدا شده
            از اونجایی که آدرس رو مطلق نکردم با درگ به پایین میشه (ROW(a2 یعنی دومین ردیف پیدا شده و به همین ترتیب (ROW(a3 یعنی سومین ردیف پیدا شده و...
            حالا تک تک ردیف ها با درگ به پایین پیدا میشن و تو تابع index وقتی ردیف قرار گرفت با توجه به ستون وارد شده که در اینجا بصورت دستی بوده سلول مشخص شده اطلاعاتش قرار میگیره.
            این که چطور 3 شرایط رو میسنجیم مربوط میشه به آرایه ها
            باز سوالی بود بفرمایید.
            [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

            کامنت

            • a.dal65

              • 2011/04/29
              • 384
              • 67.00

              #7
              سلام
              ممنون امیر جان بابت توضیحات
              دیشب هر کاری کردم نتونستم تو فایل خودم پیاده کنم
              بی زحمت بگو بهم مشکل سلول b5چیه
              فایل های پیوست شده

              کامنت

              • amir_ts

                • 2015/03/17
                • 1247

                #8
                با سلام
                فرمول ها مشکلی نداشت شما فقط فرمت سه شرط رو باید با هم یکسان کنید که تو جستجو مشکل پیش نیاد. تو لیست گزارش لیست شروط رو فرمتش رو با جدول اصلیتون یکی کنید.
                فایل های پیوست شده
                [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

                کامنت

                • a.dal65

                  • 2011/04/29
                  • 384
                  • 67.00

                  #9
                  ممنون
                  دیروز 2 ساعت داشتم با این ور میرفتم
                  بالاخره خسته شدم بیخیالش شدم

                  الان من حدود 800 سطر اطلاعات دارم که وقتی شماره واحد فردی رو وارد میکنم حدود 10 تا 15 ثانیه طول میشکه تا جواب بده
                  آیا راهی داره سرعت شو بالاتر ببرم ؟(مثلا از TAble استفاده کنم یا NameManger تعریف کنم برای ستون هام)
                  وقتی هم که با UserForm کار میکنم این تایم حداقل 6-7 برابر میشه و همش در حال Calculatingهست

                  کامنت

                  • amir_ts

                    • 2015/03/17
                    • 1247

                    #10
                    با سلام
                    تا اونجایی که من اطلاع دارم برای 800 ردیف تقریبا برای آزمایش برقراری فقط سه شرط یک ردیف 512,000,000 ضرب صورت میگیره تا شرایط درست سنجیده و انتخاب بشن طبیعتا این حجم پردازش زمان میبره.
                    table یا name manager تاثیری تو اصل پردازش نداره و فقط نامگذاری برای درک بهتر فرمول هست.
                    من فکر نکنم با تغیر فرمول بشه سرعت رو افزایش داد چون تحت هر شرایط باید 800 ردیف شما پردازش بشه .حالا اگر سیستم سخت افزاری کامپیوتر شما قوی تر باشه یک مقدار سرعت افزایش پیدا میکنه ولی این که لحظه ای بشه ی کم دور از ذهنه.
                    البته شاید اساتید راهکاری داشته باشند که اگر توضیح دادند من هم استفاده میکنم.
                    [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

                    کامنت

                    • a.dal65

                      • 2011/04/29
                      • 384
                      • 67.00

                      #11
                      ممنون بابت راهنماییت.
                      الان مثلا توی کد ها از این خیلی استفاده شده:
                      DATA!$J$2:$J$65000
                      حالا اگه این 65000 حذف بشه وبجاش از ردیف نام جدول استفاده کنم =Table2[واحد]
                      شاید تاثیر داشته باشه
                      حالا تست میکنم همه راه های رو و جوابو همینجا میزارم

                      کامنت

                      • a.dal65

                        • 2011/04/29
                        • 384
                        • 67.00

                        #12
                        امیر جان با تعریف Table و استفاده ستون جدول ها سرعت خیلی افزایش پیدا کرد الان حدود 2 تا 3 ثانیه
                        البته فکر کنم بیشترش به این مربوظ میشه که قبلا تو 65000 تا سطر جستجو میکرد الان توی جدولی که فعلا 800 تا سطر داره.

                        (فقط با UserForm که کار میکنم واقعا عذاب آور شده )
                        یه راه پیدا کردم
                        اون هم اینه که وقتی اون شیتی که باعث هنگ کردن میشه در هنگامی که باز نیست calcation رو manaual کردم
                        الان درست کار میکنه
                        کد:
                        Private Sub Worksheet_Activate()
                          Application.Calculation = xlCalculationAutomatic
                        End Sub
                         
                        Private Sub Worksheet_Deactivate()
                                Application.Calculation = xlCalculationManual
                        End Sub
                        Last edited by a.dal65; 2016/02/25, 16:01.

                        کامنت

                        • amir_ts

                          • 2015/03/17
                          • 1247

                          #13
                          با سلام
                          دوست عزیز
                          من الان متوجه شدم شما 800 ردیف اطلاعات داشتید بعد تو فرمول 65000 ردیف آدرس داده بودید این یعنی 65000*65000*65000 میشه 274,625,000,000,000 عملیات ضرب که قطعا" زمانبر و گاهی مشکل ساز میشه.
                          من فکر کردم 800 ردیف پردازش شما رو کلافه کرده ممنون که اطلاع رسانی کردید.
                          [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

                          کامنت

                          • mobinsaffarpour

                            • 2013/05/25
                            • 176

                            #14
                            جناب آقای دلیران

                            باسلام

                            امکانش هست فایل نهائی پروژه رو برای دوستان قرار دهید.

                            کامنت

                            • a.dal65

                              • 2011/04/29
                              • 384
                              • 67.00

                              #15
                              نوشته اصلی توسط mobinsaffarpour
                              جناب آقای دلیران
                              باسلام
                              امکانش هست فایل نهائی پروژه رو برای دوستان قرار دهید.
                              سلام
                              خدمت شما
                              شرمنده بابت تاخیر الان که اینجا اومدم دیدم
                              فایل های پیوست شده

                              کامنت

                              چند لحظه..