فرمول جایگزین برای ایندكس مچ

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ظهور 313

    • 2017/01/20
    • 244

    پرسش فرمول جایگزین برای ایندكس مچ

    سلام و عرض ادب خدمت اساتید بزرگوار
    من برای پیدا كردن یك مقدار در محیط vba از تركیب ایندكس و مچ استفاده میكنم
    به این صورت
    TextBox152.Value = WorksheetFunction.Index(Sheets("MAS").Range("F10:F 1000"), WorksheetFunction.Match(textbox1.value, Sheets("MAS").Range("E10:E1000"), 0))
    اما این فرمول گاهی اوقات در قسمت مچ به مشكل میخوره و در نتیجه نمیتونه مقدار مورد نظر رو برگردونه و خطا میده
    میخواستم ببینم از اساتید كسی میتونه یه فرمول بهتر بهم معرفی كنه و یا اینكه مشكل این فرمول رو بهم بگه؟
    اینم تصویر خطا
    Click image for larger version

Name:	photo_2019-01-08_21-48-42.jpg
Views:	1
Size:	107.5 کیلو بایت
ID:	147495
  • hadi1980

    • 2019/01/07
    • 237
    • 86.00

    #2
    سلام
    تابع match همانطوري که خودتون ميدونيد جستجوگر خوبي هست ولي مثل توابع lookup درگيريهاي نحوه چيدمان آرايه جستجو را داره. البته ديدم که از مقدار صفر براي آرگومان سوم اون استفاده کرديد که مشکل رفع بشه.
    خلاصه اينکه با توجه به اين برنامه زيبايي که نوشتيد (و تو تصوير مشخصه که خيلي براي اون زحمت کشيديد) پيشنهاد ميدم براي جستجو اصلا از توابع اکسل استفاده نکنيد و خودتون يه موتور جستجوي کوچولوي ساده (که همش ميشه چند خط ساده) و البته با قابليت شخصي‌سازي دلخواه بنويسد که از اين خطاها راحت بشيد
    البته اگر اصرار بر اين داريد که کد خودتون رو با همون تابع match اصلاح کنيد لازمه کدتون رو ببينم و debug کنم چون پيام خطايي که تو تصوير گذاشتيد خيلي کلي هست.

    کامنت

    • ظهور 313

      • 2017/01/20
      • 244

      #3
      ممنونم دوست عزیز
      نه هیچ اصراری به این فرمول ندارم، اما بیشتر از این بلد نیستم. اگه ممكنه راهنمایی بفرمایید. لازمه یادآوری كنم كه این فرمول خطا نداره و كاملا جواب میده. اما نمیدونم چرا گاهی اوقات، دقیقا در جایی كه قبلا بدون مشكل جواب میداده، یه هو و بدون دلیل خطا میده.
      حالا اگر فرمول بهتر یا راهكار بهتری دارید، لطفا راهنمایی بفرمایید

      کامنت

      • hadi1980

        • 2019/01/07
        • 237
        • 86.00

        #4
        سلام مجدد
        اکسل بدون دليل هيچوقت خطا نميده و حتما اون پشت يه دليلي داره
        همانطور که گفتم دو راهکار داريد
        اگه مشکلي نداريد فايلتون رو بگذاريد من هم debug و بررسي کنم که ببينيم واقعا دليلش چيه و رفعش کنيم (به احتمال خيلي زياد رفع ميشه)
        و راه دوم اينکه براش يه موتور جستجو با چند تا if , for بنويسيد
        نمونه موتور جستجو رو الان تو يه پست ديگه نوشتم

        تو اون پست با يه موتور کوچولوي جستجو دو تا عبارت رو تو يه ستون جستجو کردم و بعدش validation رو با اون تنظيم کردم

        کامنت

        چند لحظه..