خواندن اولین اولین عدد بزرگتر و پیدا کردن مقدار متناظر

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

    • 2012/09/16
    • 6

    [حل شده] خواندن اولین اولین عدد بزرگتر و پیدا کردن مقدار متناظر

    با سلام

    یک فایل اکسل دارم که محتوی یک جدول هست.

    میخوام با اکسل یک جدول خوانی انجام بدهم. کاری که میخوام انجام بدم اینه:


    دو تا داده ورودی وجود داره
    اولین عددی که وارد میشه با ستون طول مقایسه بشه و اولین عدد بزرگتر بعد از آن انتخاب بشه.
    دومین عددی که وارد میشه با مقادیر ردیف متناظر طول بدست آمده از مرحله قبلی مقایسه بشه و مجدداً اولین عدد بزرگتر از آن را پیدا کرده و نهایتاً مقدار قطر نظیر آن را پیدا کند.

    مثال: عدد 3 به عنوان طول و 6 به عنوان عدد دوم وارد می شود. ابتدا اولین عدد بزرگتر از 3 یعنی 4 انتخاب میگردد. سپس عدد دوم با مقادیر مربوط به ردیف 4 مقایسه شده و اولین عدد بزرگتر از آن یعنی 8.5 انتخاب می شود. و در انتها مقدار قطر مربوطه یعنی 0.75 گزارش می شود.

    در صورت امکان راهنمایی فرمایید.
    فایل های پیوست شده
  • امين اسماعيلي
    مدير تالار ويژوال بيسيك

    • 2013/01/17
    • 1198
    • 84.00

    #2
    کارتون سخت نیست اما خوب توضیح ندادی. من نگرفتم چی به چی شد. در کل با match و index کارت حل میشه اگر ستون جستجو اولیت سورت باشه. اگرم نباشه با ارایه بازم براحتی قابل حله. فایلتو مرتب کن. از مرج ایتفاده نکن و اینکه یه مثال خوب بزن تو خود فایل من نفهمیدم چطور به 0.75 رسیدی
    در پناه خداوندگار ایران زمین باشید و پیروز

    کامنت

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

      • 2013/01/17
      • 1198
      • 84.00

      #3
      من برات فایل رو میزارم اما مثالت اصلا خوب نیست چون مثلا اگر عدد اول 3 باشه و بعدی 10 باشه در نتیجه عدد 4 انتخاب میشه و بعد10با ردیف متناظر مقایسه میشه که از هیچ کدومش بزرگتر نیست. اما در کل نوشتیم حالا تست کن ببین همونه که میخوای
      فایل های پیوست شده
      در پناه خداوندگار ایران زمین باشید و پیروز

      کامنت

      • Ahmadreza_b

        • 2012/09/16
        • 6

        #4
        نوشته اصلی توسط امين اسماعيلي
        کارتون سخت نیست اما خوب توضیح ندادی. من نگرفتم چی به چی شد. در کل با match و index کارت حل میشه اگر ستون جستجو اولیت سورت باشه. اگرم نباشه با ارایه بازم براحتی قابل حله. فایلتو مرتب کن. از مرج ایتفاده نکن و اینکه یه مثال خوب بزن تو خود فایل من نفهمیدم چطور به 0.75 رسیدی
        با سلام و احترام

        ستون جستجوی اول سورت شده هست و داده ها را به ترتیب زده ام. این اعداد مربوط به یک جدول سایز لوله هستند.

        ابتدا کاربر طول لوله و بعد میزان مصرف را وارد میکنه

        مثلاً طول را عدد 3 در نظر بگیرید. چون در جدول عدد 3 وجود نداره اولین عدد بزرگتر از آن انتخاب میشه یعنی 4. خوب حالا طول لوله مشخص شده. عدد دومی که توسط کاربر مشخص شده میزان مصرف هست. مثلاً عدد 6 وارد شده که در ردیف مربوط به سایز 4 اولین عدد بعد از 6 برابر با 8.5 است.

        حالا مقدار متناظر با 8.5 از دریف بالای جدول گزارش میشه که همان 0.75 است.

        کامنت

        • Ahmadreza_b

          • 2012/09/16
          • 6

          #5
          نوشته اصلی توسط امين اسماعيلي
          من برات فایل رو میزارم اما مثالت اصلا خوب نیست چون مثلا اگر عدد اول 3 باشه و بعدی 10 باشه در نتیجه عدد 4 انتخاب میشه و بعد10با ردیف متناظر مقایسه میشه که از هیچ کدومش بزرگتر نیست. اما در کل نوشتیم حالا تست کن ببین همونه که میخوای
          با تشکر از شما
          این فایل نسخه کامل همون فایل هست. که تعداد سطر و ستونش بیشتره. ظاهراً در فایل ارسالی شما اگر ستون اول صحیح نباش ستون دوم را انتخاب میکنه. قطعا کوتاهی از بنده هست از ابتدا باید فایل کامل را میفرستادم.

          لطفاً تفاوت دو روش را هم در صورت امکان بفرمایید. الان در روش اول برای عدادی که در جدول هم وجود داره باز عدد بزرگتر را گزارش میکنه.

          در صورت امکان برای جدول کامل راه حل ارائه فرمایید

          با تشکر
          فایل های پیوست شده

          کامنت

          • amir_ts

            • 2015/03/17
            • 1247

            #6
            با سلام
            با اجازه دوست عزیزمون که راهنمایی لازم رو کردن ،این فرمول آرایه ای رو امتحان کنید.
            کد PHP:
            =index($b$2:$j$2;;match($n$6;offset($b$1:$j$1;match($m$6;$a$1:$a$32;1););1)+1
            فایل های پیوست شده
            [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

            کامنت

            • Ahmadreza_b

              • 2012/09/16
              • 6

              #7
              نوشته اصلی توسط amir_ts
              با سلام
              با اجازه دوست عزیزمون که راهنمایی لازم رو کردن ،این فرمول آرایه ای رو امتحان کنید.
              کد PHP:
              =index($b$2:$j$2;;match($n$6;offset($b$1:$j$1;match($m$6;$a$1:$a$32;1););1)+1
              با سلام و احترام
              ضمن تشکر از زحمات شما

              فایل به درستی کار میکنه. فقط یک ایراد داره: برای اعداد مساوی با داده جدول باز عدد بعدی را گزارش میکنه و همچنین برای داده آخری (300) هم نمیتونه جواب بده. این موضوع در مورد هر دو داده ورودی صدق میکنه

              مثلاً طول 14 با مصرف 48.2 باید به جواب 2 برسه که 2.5 گزارش میده.

              کامنت

              • amir_ts

                • 2015/03/17
                • 1247

                #8
                فقط یک ایراد داره: برای اعداد مساوی با داده جدول باز عدد بعدی را گزارش میکنه و همچنین برای داده آخری (300) هم نمیتونه جواب بده. این موضوع در مورد هر دو داده ورودی صدق میکنه
                بله درسته ولی طرح صورت مسئله اینطور بود.....
                اولین عددی که وارد میشه با ستون طول مقایسه بشه و اولین عدد بزرگتر بعد از آن انتخاب بشه.
                ناچار به استفاده از فرمول طولانی شدم البته شاید دوستان راه حل ساده تری داشته باشند.
                کد PHP:
                =index($b$2:$j$2;;if(not(isna(match(n6;offset($b$1:$j$1;if(not(isna(match($m$6;$a$1:$a$32;0)));match($m$6;$a$1:$a$32;0)-1;match($m$6;$a$1:$a$32;1)+1););0)));match(n6;offset($b$1:$j$1;if(not(isna(match($m$6;$a$1:$a$32;0)));match($m$6;$a$1:$a$32;0)-1;match($m$6;$a$1:$a$32;1)+1););0);match(n6;offset($b$1:$j$1;if(not(isna(match($m$6;$a$1:$a$32;0)));match($m$6;$a$1:$a$32;0)-1;match($m$6;$a$1:$a$32;1)+1););1)+1)) 
                فایل های پیوست شده
                [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

                کامنت

                چند لحظه..