شماره پشتیبانی اکسل پدیا در بله: 09914083023
سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه
تمام دسته ها
  • تمام دسته ها
  • ابزارها
  • افزونه ها
  • اکسل مدیا
  • Power BI
  • Power Pivot
  • Power Query
  • توابع اکسل
  • دسته‌بندی نشده
  • دیده بان
  • گوگل شیت
  • مسائل کاربردی
  • معرفی کتاب
  • نمودار ها
  • وی بی - ماکرو

۶ کاربرد فوق العاده از تابع Index

کاربرد تابع Index
۴.۸/۵ - (۲۱ امتیاز)

چند کاربرد از تابع Index

همونطور که قبلا توضیح دادیم، تابع Index در ترکیب با سایر توابع، یکی از توابع بسیار بسیار قوی توی اکسل هست که اگه به همه زوایا و توانایی های این تابع آشنایی داشته باشیم،  قدرت ما رو در فرمول نویسی خیلی افزایش میده. در این مقاله میخوام ۶ کاربرد فوق العاده از تابع Index رو آموزش بدم:

قبل از مطالعه این ۶ کاربرد، نحوه کار با تابع Index و آشنایی با آرگومان های این تابع رو در مقاله ” Index تابع قدرتمند اکسل” رو مطالعه کنید.

کاربرد تابع Index: فراخوانی N امین سلول در یک محدوده

اولین و ساده ترین حالت کاربرد تابع Index این هست که برای فراخوانی Nامین داده از یک محدوده استفاده میشه. فرض کنید یک کمبوباکس داریم مطابق شکل ۱. همونطور که میدونیم خروجی لیست فروریز (کمبوباکس) یک عدد هست که در واقع میگه چندمین داده از لیست نتخاب شده. حالا برای اینکه با هر انتخاب، عنوان آیتم انتخاب شده رو فراخوانی کنیم (یعنی با انتخاب تابستان از لیست، بجای عدد ۲، مقدار تابستان رو در یک سلول داشته باشیم)، میتونیم از تابع Index استفاده کنیم.

=Index (A2:A5 ; A1 )

فراخوانی Nامین داده از یک لیست

شکل ۱- کاربرد تابع Index -فراخوانی Nامین داده از یک لیست

کاربرد تابع Index: فراخوانی همه داده ها در یک ردیف یا ستون

تابع Index علاوه بر اینکه یک سلول حاصل تقاطع یک شماره ردیف و ستون رو بر میگردونه، میتونه عملیاتی رو روی یک ردیف یا یک ستون مشخص هم انجام بده. به شکل ۲ توجه کنید. وقتی آرگومان Row_Num رو خالی یا ۰ میذاریم، چون ردیفی رو مشخص نمیکنیم، پس همه ردیف ها (یعنی یک ستون) در نظر گرفته میشه. در واقع داریم به فرمول میگیم که از محدوده 6B1:C1 کل ستون اول رو در نظر بگیر و میانگین روی این محدوده حساب کن.

تعیین محدوده با استفاده از تابع Index

شکل ۲- کاربرد تابع Index -تعیین محدوده با استفاده از تابع Index

در مورد آرگومان Column_Num هم همین اصل برقرار هست. یعنی اگر این آرگومان رو ۰ یا خالی بذاریم، کل ردیف تعیین شده در نظر گرفته میشه.

در واقع بجای اینکه مستقیم بنویسیم  Average(B2:B16) این محدوده رو با تابع Index تعیین کردیم. این نوع تعیین محدوده به دلیل انعطاف پذیری بالا، در ترکیب فرمول ها و تهیه نرم افزارها کاربرد زیادی دارن.

نکته:
چون خروجی این حالت تابع Index یک محدوده هست، یا حتما باید عملیات دیگه ای روش انجام بشه یا بشه قسمتی از یک فرمول دیگه و خودش به تنهایی قابل استفاده نیست.

 

کاربرد تابع Index: ترکیب Index با سایر توابع

با توجه به مثال های قبلی، برداشتمون اینه که تابع Index محتوای سلول رو به ما میده. اما واقعیت اینه که این تابع به یک Reference اشاره میکنه که داخلش مقدار وجود داره. در این مثال ماهیت واقعی تابع Index رو میبینیم و با توجه به Reference بودن خروجی تابع Index، میتونیم ازش در تعیین محدوده های پویا استفاده کنیم.

مثال اول: فرض کنید میخواهیم میانگین یک محدوده رو مطابق Average(A1:A10) حساب کنیم. این محدوده رو میتونیم به این شکل هم تعیین کنیم:

=Average ( A1 : Index  (A1:A10,10) )

در ادامه به ارائه کاربرد این روش استفاده از Index می پردازیم:

فرض کنید میخواهیم میانگین وزن پنج نفر اول رو حساب کنیم. برای این کار اول ستون وزن رو از بزرگ به کوچک Sort میکنیم. سپس فرمول زیر رو مینویسیم. (مطابق شکل ۳)

=Average ( C2 : Index (C2:C16 ; E1) )

ایجاد محدوده انعطاف پذیر با تابع Index

شکل ۳- کاربرد تابع Index -ایجاد محدوده انعطاف پذیر با تابع Index

مثال دوم: فرض کنید میخوایم یک محدوده مشخص از بین داده ها رو انتخاب کنیم و جمع محاسبه کنیم. برای این مسئله هم از ترفند بالا استفاده میکنیم و محدوده مورد نظر رو میسازیم. در واقع ما با استفاده از تابع Index ابتدا و انتهای بازه رو میسازیم. سپس با استفاده از : بازه رو تشکیل میدیم.

=Sum ( Index (B2:B13;E2) : Index (B2:B13;E3) )

ایجاد محدوده انعطاف پذیر با تابع Index

شکل ۴- کاربرد تابع Index -ایجاد محدوده انعطاف پذیر با تابع Index

همونطور که در تصویر زیر میبینید، تابع Index ابتدا و انتهای بازه رو میسازه و در نهایت فرمول به Sum(B3:B9) تبدیل میشه

ارزیابی فرمول

کاربرد تابع: محدوده پویا و داینامیک با Index

ایجاد محدوده های داینامیک و پویا از سری مباحث بسیار پر اهمیت در فرمول نویسی حرفه ای، داشبورد، ایجاد نمودارهای داینامیک و … هست. یکی از راه های ایجاد محدوده پویا تابع Offset هست که در مقاله نمودارهای پویا به آن پرداختیم. در این مقاله میخوایم با استفاده از تابع Index این کار رو انجام بدیم. فرض کنید لیستی از محصولات داریم که هر بار مواردی حذف/اضافه میشه. میخوایم لیستی داشته باشیم از نام محصولات که مطابق با تغییرات، محتوای اون لیست هم تغییر کنه. برای این کار مطابق شکل ۵ یک Name ایجاد میکنیم و فرمول زیر رو به اون نام اختصاص میدیم.

=A2 : Index ( A:A ; Counta (A:A) )

فرمول نویسی در Name Manger

شکل ۵- کاربرد تابع Index -فرمول نویسی در Name Manger

 سپس نام مورد نظر رو در Data Validation قسمت List وارد میکنیم (شکل ۶).

تخصیص نام مورد نظر در دیتاولیدیشن

شکل ۶- کاربرد تابع Index -تخصیص نام مورد نظر در دیتاولیدیشن

در نهایت لیستی داریم مطابق شکل ۷ که با کم و زیاد شدن آیتم ها، موارد داخل لیست هم آپدیت میشه.

ایجاد لیست داینامیک و پویا

شکل ۷- کاربرد تابع Index -ایجاد لیست داینامیک و پویا

۵- جستجو (Vlookup) با ترکیب Index و Match

استفاده از ترکیب توابع Index و Match بجای Vlookup میتونه مزیت های زیر رو داشته باشه:

  • مسئله رو به جلو بودن جستجو مطرح نیست و میشه جستجوی عقبگرد انجام داد. (در خصوص Backward Vlookup این مقاله رو مطالعه کنید)
  • محدودیت کاراکتر برای سرچ وجود نداره
  • نیازی به مرتب بودن داده ها نیست. (در Vlookup با جستجوی تخمینی، داده ها باید مرتب باشن)
  • حذف و اضافه ردیف و ستون به مراتب راحت تره
  • این ترکیب به مراتب سریع تر از Vlookup چندگانه است و موجب کند شدن فایل نمیشه.

مثلا فرض کنید میخوایم ببینیم فروش ماه اردیبهشت چقدر بوده است؟ بجای Vlookup از ترکیب Index و Match استفاده میکنیم.

=INDEX ( B2:B13 ; MATCH(D2;A2:A13;0) )

در واقع تابع Match برای ما تعیین میکنه که ماه اردیبهشت چندمین سلول  در محدوده B2:B13 هست (در این مثال میشه ۲) و خروجی آن در آرگومان Row_num تابع Index قرار میگیره. یعنی :

=INDEX ( B2:B13 ; 2 )

جستجو با استفاده از Index و Match

شکل ۸- کاربرد تابع Index -جستجو با استفاده از Index و Match

۶- فراخوانی یک محدوده از لیستی از محدوده ها

همونطور که تا الان متوجه شدید، تابع Index دو حالت داره: حالت Array و حالت  .Referenceتا الان با حالت Array کار کردیم و آشنا شدیم. در ادامه یک مثال برای حالت Reference ارائه میدم:

تابع Index در حالت Reference میتونه محدوده های مختلفی رو بگیره و جستجو رو انجام بده. مثلا دو محدوده داریم و هر بار میخوایم بین یکی از اینها داده مورد نظر رو پیدا کنیم. به شکل ۹ دقت کنید:

=Index ( (A1:B5;D1:E5;G1:H5;J1:K5) ; 3 ; 2 ; 2 )

انتخاب محدوده جستجو با تابع Index (Reference)

شکل ۹- انتخاب محدوده جستجو با تابع Index (Reference)

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

رگومان آخر هم مشخص میکنه که از بین محدوده های انتخاب شده، جستجو بین چندمین محدوده انجام بشه.

در این فرمول می بینید که آرگومان Area_Num ، ۲ تعیین شده که در .اقع به این معنی هست که دومین محدوده در نظر گرفته بشه.پس خروجی این تابع، سلول حاصل تقاطع ردیف ۳ و ستون ۲ در محدوده دوم یعنی D1:E5 خواهد بود.

نکته:
محدوده های انتخابی ممکنه هم اندازه نباشن، پس شماره ستون و ردیفی که تعیین میشه باید برای محدوده مورد نظر معنی داشته باشه تا با خطای #Ref مواجه نشیم.

 

حالا اگه بخوایم طوری فرمول نویسی کنیم با انتخاب فصل مورد نظر، خودش شماره محدوده رو تعیین کنه به روش زیر عمل میکنیم:

برای این کار یک لیست (Data Validation) درست میکنیم در سلول A9 که شامل عنوان چهار فصل هست، سپس فرمول زیر رو ثبت میکنیم:

=INDEX( (A1:B5;D1:E5;G1:H5;J1:K5) ; 3 ; 2 ; MATCH (A9 ; {“بهار”;”تابستان”;”پاییز”;”زمستان”} ;۰))

در واقع با استفاده از تابع Match شماره فصل رو استخراج میکنیم که بتونیم در آرگومان اخر تابع Index در حالت Reference ازش استفاده کنیم. با تغییر نام فصل خروجی تابع Match و در نهایت خروجی تابع Index تغییر میکنه.

استفاده از تابع Index

در مثالهای بالا، استفاده از تابع Match میتونه خیلی کاربردی باشه. فکر میکنید در کدوم مثال و چطور میشه از این تابع در جهت بهبود فرمول های ارائه شده استفاده کرد؟ همچنین توابعی که میتونه جایگزین تابع Match بشه چی هست؟

پاسخ های خودتون رو در قالب کامنت و در ادامه همین پست ثبت کنید.

با مطالعه این مقاله مشاهده کردید که تابع Index چه توانایی های فوق العاده ای داره، مخصوصا زمانی که با توابع دیگه ترکیب میشه. پس سعی کنید خیلی خوب به این مبحث مسلط بشید. برای اطلاعات بیشتر میتونید مقاله ویژگی بسیار جالب تابع Index رو بخونید.

دانلود فایل کاربرد تابع Index در اکسل

فایل اکسل نمونه هم در انتهای آموزش قرار داده شده که بتونید تمرین کنید.

آواتار
145

فارغ التحصیل لیسانس مهندسی صنایع، ارشد مدیریت صنعتی از دانشگاه تربیت مدرس و عاشق اکسل هستم. از سال 1388 که ترم 2 لیسانس بودم، به توصیه استاد مشاورم شروع به خوندن اکسل بصورت حرفه ای کردم و همچنان در حال مطالعه و یادگیری و البته آموزش به بقیه هستم.

دیدگاه کاربران
  • منصور فرامرزی ۲۲ دی ۱۴۰۳ / ۱۰:۴۶ ب٫ظ

    با سلام و خسته نباشید ، دو تا combobax دارم که اولی را به ستون فصلها Row Source کردم و دومی را به ستون ماه ها . میخوام وقتی در ۱ combobax مثلا تابستان را انتخاب می کنم
    در ۲ combobax فقط ماه های تابستان را نشان بده تا یکی را انتخاب کنم .

    • سامان چراغی ۲۷ دی ۱۴۰۳ / ۸:۲۳ ق٫ظ

      درود،
      در ایونت Change کمبوباکس ۱ یک حلقه بذارید و متناسب با گزینه انتخاب شده در کمبوباکس یک ماه های مرتبط رو از سلول های مربوطه به کمبوباکس ۲ Additem کنید. حتما قبل از شروع حلقه، آیتم های کمبوباکس ۲ رو حذف کنید.

  • محمدامین ۳۰ اردیبهشت ۱۳۹۹ / ۱:۲۴ ق٫ظ

    خدا قوت،خیلی عالی بود.

  • حانیه ۲۳ اردیبهشت ۱۳۹۹ / ۱۱:۳۹ ب٫ظ

    عالیه اموزشاتون ….و ممنون که بی چشم داشت علمتونو در اختیار بقیه قرار میدید

  • اميد ۲۷ اسفند ۱۳۹۸ / ۸:۲۰ ق٫ظ

    من میخوام یک متغیر از داده ها بسازم که نشان دهد محصول i ام از محل تولید j ام به مشتری kام میرسه این متغیر چه جوری ایجاد کنم

    • آواتار
      حسنا خاکزاد ۲۷ اسفند ۱۳۹۸ / ۱۲:۱۴ ب٫ظ

      درود
      بستگی به ساختار داده داره
      ولی خب احتمالا تابع match و ترکیب با index جواب کارتون رو میده
      این مقاله رو ببینید
      https://excelpedia.net/index-function/

  • اميد ۲۷ اسفند ۱۳۹۸ / ۸:۱۷ ق٫ظ

    سلام فعالیت عالی هست

  • محمد ۱۲ آبان ۱۳۹۸ / ۵:۰۷ ب٫ظ

    سلام و خسته نباشید
    من ی راهنمایی میخواستم ازتون
    من تو ی شیت از اکسل چند نوع هزینه وارد کردم جلو هر کدوم مبلغ
    میخوام بدونم از چه تابعی باید استفاده کنم تا
    تو ی شیت یا حتی اکسل دیگه
    کله هزینه هامو به جز بگه مثلا هزینه آب و جدا بزنه هزینه برق و حجدا بزنه
    وبقیه هزینه رو توی متفرقه بزرنه
    ممنمون میشم راهنمایی بکنین مرسی

    • سامان چراغی ۱۳ آبان ۱۳۹۸ / ۹:۰۸ ق٫ظ

      سلام
      برای انجام این کار بهتره از Pivot Table استفاده کنید.

  • مایک ۲۲ مرداد ۱۳۹۸ / ۴:۰۹ ب٫ظ

    تشکر با فرمول زیر مشکلم حل شد

    =SMALL(IF(A:A=C1,ROW(A:A)),COUNTIF(A:A,C1))
    
    • بهمن ۲۷ فروردین ۱۴۰۲ / ۹:۰۵ ق٫ظ

      درود
      این فرمول خیلی خوبه – در واقع داره میگه که آخرین مقدار تکراری در پایین ترین سطر از آن ستون را به من خروجی بده – :)

  • مایک ۲۰ مرداد ۱۳۹۸ / ۳:۴۵ ب٫ظ

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

    • آواتار
      حسنا خاکزاد ۲۱ مرداد ۱۳۹۸ / ۱۲:۳۵ ب٫ظ

      درود بر شما
      برا یاینکه آخرین داده تکراری رو پیدا کنید باید از فرمول نویسی آرایه ای و ترکیب IF, small/large, Index و …. استفاده کنید

      • مایک ۲۲ مرداد ۱۳۹۸ / ۲:۱۸ ب٫ظ

        ممنون از جوابتون.
        دو تا جدول دارم اولی اصلی دومی برای ورود اطلاعات تکراری. در جدول دومی شماره ردیف اضاف کردم تا برای هر نفر که شماره خاص داره بتونم موارد زیادی اطلاعات وارد کنم. و در جدول اول از فرمولی که فرمودید استفاده کردم تا آخرین ردیف رو به عنوان اطلاعات اون شخص برام بیاره اما درست کار نکرد.
        امکانش هست بیشتر راهنمایی کنید؟

        • آواتار
          حسنا خاکزاد ۵ شهریور ۱۳۹۸ / ۱۱:۰۷ ق٫ظ

          درود بر شما
          سوال خیلی مبهمه

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان