تابع XMATCH اکسل با مثال های فرمول

  • این را به اشتراک بگذارید
Michael Brown
جستجو کنید اما فقط در لیست های مرتب شده به درستی کار می کند. در داده های مرتب نشده، می تواند نتایج اشتباهی را ارائه دهد که ممکن است در نگاه اول کاملاً عادی به نظر برسند.

سینتکس MATCH به هیچ وجه آرگومان حالت جستجو را ارائه نمی کند.

XMATCH به صورت بومی آرایه ها را کنترل می کند

برخلاف مدل قبلی خود، تابع XMATCH برای اکسل پویا طراحی شده است و آرایه ها را به صورت بومی کنترل می کند، بدون اینکه لازم باشد Ctrl + Shift + Enter را فشار دهید. این امر ساخت و ویرایش فرمول ها را بسیار آسان تر می کند، به خصوص زمانی که از چند عملکرد مختلف با هم استفاده می کنید. فقط راه حل های زیر را مقایسه کنید:

  • فرمول حساس به حروف بزرگ: XMATCH

    این آموزش تابع جدید XMATCH اکسل را معرفی می‌کند و نشان می‌دهد که چگونه برای حل چند کار رایج بهتر از MATCH است.

    در اکسل 365، تابع XMATCH اضافه شد تا جایگزین آن شود. تابع MATCH. اما قبل از شروع به‌روزرسانی فرمول‌های موجود، عاقلانه است که تمام مزایای عملکرد جدید و تفاوت آن با عملکرد قبلی را درک کنید.

    به طور خلاصه، تابع XMATCH مانند MATCH است اما انعطاف‌پذیرتر و انعطاف‌پذیرتر است. قدرتمند. می‌تواند هم در آرایه‌های عمودی و هم در آرایه‌های افقی جستجو کند، جستجوی اول به آخر یا آخرین به اول را انجام دهد، مطابقت‌های دقیق، تقریبی و جزئی را پیدا کند و از الگوریتم جستجوی باینری سریع‌تر استفاده کند.

    عملکرد XMATCH اکسل

    تابع XMATCH در اکسل موقعیت نسبی یک مقدار را در یک آرایه یا محدوده ای از سلول ها برمی گرداند.

    این نحو زیر را دارد:

    XMATCH(lookup_value , lookup_array, [match_mode], [search_mode])

    Where:

    Lookup_value (لازم است) - مقداری که باید جستجو شود.

    Lookup_array (الزامی) - آرایه یا محدوده سلول هایی که در آن جستجو می شود.

    Match_mode (اختیاری) - نوع تطابق را مشخص می کند:

    • 0 یا حذف شده (پیش فرض) - تطابق دقیق
    • -1 - مطابقت دقیق یا کوچکترین مقدار بعدی
    • 1 - مطابقت دقیق یا بزرگترین مقدار بعدی
    • 2 - تطبیق علامت عام ( *، ?)

    Search_mode (اختیاری) - جهت و الگوریتم جستجو را مشخص می کند:

    • 1 یا حذف شده (پیش فرض) -مطابقت یا بزرگترین بعدی نیازی به مرتب سازی ندارد.

    وقتی آرگومان match_mode / match_type روی -1 تنظیم می شود:

    • MATCH جستجو می کند برای تطابق دقیق یا بزرگترین بعدی. نیاز به مرتب سازی آرایه جستجو به ترتیب نزولی دارد.
    • XMATCH مطابقت دقیق یا کوچکترین بعدی را جستجو می کند. به هیچ گونه مرتب‌سازی نیاز ندارد.

    جستجوی عام

    برای یافتن موارد منطبق با XMATCH، باید آرگومان match_mode را روی 2 تنظیم کنید.

    <. 0>عملکرد MATCH گزینه حالت تطبیق حروف عام خاصی ندارد. در بیشتر موارد، شما آن را برای مطابقت دقیق پیکربندی می‌کنید ( match_type تنظیم روی 0)، که برای جستجوهای عام نیز کار می‌کند.

    حالت جستجو

    مانند XLOOKUP جدید تابع، XMATCH دارای یک آرگومان search_mode ویژه است که به شما امکان می دهد جهت جستجو را تعریف کنید :

    • 1 یا حذف شده (پیش فرض) - جستجو در ابتدا به -last.
    • -1 - جستجوی معکوس آخرین به اول.

    و یک الگوریتم جستجوی دودویی را انتخاب کنید که بسیار سریع و کارآمد در داده های مرتب شده .

    • 2 - جستجوی باینری در داده ها مرتب شده صعودی.
    • -2 - جستجوی باینری بر روی داده ها مرتب شده به صورت نزولی.

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

  • -1 - جستجو به ترتیب معکوس از آخرین به اول.
  • 2 - جستجوی باینری صعودی. نیاز به مرتب شدن lookup_array به ترتیب صعودی دارد.
  • -2 - جستجوی باینری نزولی. به lookup_array نیاز دارد تا به ترتیب نزولی مرتب شوند.

جستجوی باینری الگوریتم سریع تری است که روی آرایه های مرتب شده به طور موثر کار می کند. برای اطلاعات بیشتر، لطفاً به حالت جستجو مراجعه کنید.

کدام نسخه Excel دارای XMATCH است؟

عملکرد XMATCH فقط در اکسل برای Microsoft 365 و Excel 2021 موجود است. در Excel 2019، Excel 2016 و نسخه های قبلی در نسخه های مختلف، این تابع پشتیبانی نمی شود.

فرمول پایه XMATCH در اکسل

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

فرض کنید، شما فهرستی از اقیانوس ها را دارید که بر اساس اندازه آنها رتبه بندی شده اند (C2:C6) و می خواهید رتبه یک اقیانوس خاص را پیدا کنید. برای انجام این کار، به سادگی از نام اقیانوس استفاده کنید، بگویید Indian ، به عنوان مقدار جستجو و کل لیست نام ها را به عنوان آرایه جستجو استفاده کنید:

=XMATCH("Indian", C2:C6)

برای ساختن فرمول انعطاف‌پذیرتر است، اقیانوس مورد نظر را در برخی سلول‌ها وارد کنید، مثلاً F1:

=XMATCH(F1, C2:C6)

در نتیجه، فرمول XMATCH دریافت می‌کنید تا در آرایه عمودی . خروجی موقعیت نسبی مقدار جستجو در آرایه است که در مورد ما چنین استبا رتبه اقیانوس مطابقت دارد:

یک فرمول مشابه برای آرایه افقی نیز کاملاً کار می کند. تنها کاری که باید انجام دهید این است که مرجع lookup_array را تنظیم کنید:

=XMATCH(B5, B1:F1)

عملکرد XMATCH Excel - چیزهایی که باید به خاطر بسپارید

برای استفاده موثر از XMATCH در کاربرگ های خود و جلوگیری از نتایج غیرمنتظره، لطفاً این 3 واقعیت ساده را به خاطر بسپارید:

  • اگر دو یا چند مورد از مقدار جستجو در آرایه جستجو وجود داشته باشد، موقعیت اگر آرگومان search_mode روی 1 تنظیم شود یا حذف شود، اولین مطابق برگردانده می شود. با تنظیم search_mode روی -1، تابع به ترتیب معکوس جستجو می کند و موقعیت آخرین تطابق را همانطور که در این مثال نشان داده شده است برمی گرداند.
  • اگر مقدار جستجو یافت نشد ، یک خطای #N/A رخ می دهد.
  • عملکرد XMATCH طبیعتا به حروف بزرگ حساس نیست و نمی تواند حروف بزرگ را تشخیص دهد. برای تشخیص حروف کوچک و بزرگ، از این فرمول XMATCH حساس به حروف بزرگ و کوچک استفاده کنید.

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

مثال های زیر به شما کمک می کند تا درک بیشتری در مورد تابع XMATCH و کاربردهای عملی آن.

تطابق دقیق در مقابل تطابق تقریبی

رفتار تطبیق XMATCH توسط آرگومان اختیاری match_mode کنترل می شود:

  • 0 یا حذف شده (پیش فرض) - فرمول فقط مطابقت دقیق را جستجو می کند. اگر مطابقت دقیق پیدا نشد، الفخطای #N/A برگردانده شد.
  • -1 - فرمول ابتدا مطابقت دقیق و سپس مورد کوچکتر بعدی را جستجو می کند.
  • 1 - فرمول ابتدا مطابقت دقیق را جستجو می کند، و سپس برای آیتم بزرگتر بعدی.

و اکنون، بیایید ببینیم که چگونه حالت های مختلف مطابقت بر نتیجه فرمول تأثیر می گذارد. فرض کنید می خواهید بفهمید که یک منطقه خاص، مثلاً 80،000،000 کیلومتر مربع، در میان تمام اقیانوس ها کجا قرار دارد.

تطابق دقیق

اگر از 0 برای match_mode استفاده کنید، شما' یک خطای #N/A دریافت می‌شود، زیرا فرمول نمی‌تواند مقداری دقیقاً برابر با مقدار جستجو پیدا کند:

=XMATCH(80000000, C2:C6, 0)

کوچک‌ترین مورد بعدی

اگر از -1 استفاده می‌کنید برای match_mode ، فرمول 3 را برمی گرداند، زیرا نزدیکترین تطابق کوچکتر از مقدار جستجو 70,560,000 است و سومین مورد در آرایه جستجو است:

=XMATCH(80000000, C2:C6, -1)

بزرگترین مورد بعدی

اگر از 1 برای match_mode استفاده کنید، فرمول خروجی 2 خواهد داشت، زیرا نزدیکترین تطابق بزرگتر از مقدار جستجو 85,133,000 است که دومین مورد در آرایه جستجو است. :

=XMATCH(80000000, C2:C6, -1)

تصویر زیر تمام نتایج را نشان می دهد:

نحوه تطبیق متن جزئی در اکسل با حروف عام

عملکرد XMATCH یک حالت تطبیق ویژه برای کاراکترهای عام دارد: آرگومان match_mode روی 2 تنظیم شده است.

در حالت تطبیق حروف عام، فرمول XMATCH حروف عام زیر را می پذیرد. نویسه ها:

  • علامت سوال (؟) برای مطابقت با هر نویسه.
  • ستاره (*) برای مطابقت با هر یکدنباله کاراکترها.

لطفاً به خاطر داشته باشید که حروف عام فقط با متن کار می کنند، نه اعداد.

به عنوان مثال، برای پیدا کردن موقعیت اولین موردی که با "جنوب" شروع می شود. ، فرمول این است:

=XMATCH("south*", B2:B6, 2)

یا می توانید عبارت wildcard خود را در برخی از سلول ها تایپ کنید، مثلاً F1، و مرجع سلول را برای آرگومان lookup_value ارائه دهید:

=XMATCH(F1, B2:B6, 2)

با اکثر توابع اکسل، از tilde (~) برای در نظر گرفتن ستاره (~*) یا علامت سوال (~?) به عنوان تحت اللفظی استفاده می کنید. کاراکترها، نه عجایب. با XMATCH، tilde مورد نیاز نیست. اگر حالت تطبیق حروف عام را تعریف نکنید، XMATCH چنین فرض می‌کند؟ و * کاراکترهای معمولی هستند.

به عنوان مثال، فرمول زیر محدوده A2:A7 را دقیقاً برای کاراکتر ستاره جستجو می کند:

=XMATCH("*", A2:A7)

جستجوی معکوس XMATCH برای یافتن آخرین تطابق

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

جهت جستجو به عنوان آرگومان چهارم XMATCH با نام search_mode کنترل می شود. برای جستجو به ترتیب معکوس، یعنی از پایین به بالا در یک آرایه عمودی و از راست به چپ در یک آرایه افقی، search_mode باید روی -1 تنظیم شود.

در این مثال، ما موقعیت آخرین رکورد را برای یک مقدار جستجوی خاص برمی گرداند (لطفاً به تصویر زیر مراجعه کنید). برای این کار، آرگومان ها را به صورت تنظیم کنیدبه شرح زیر Match_mode 0 است یا حذف شده است (تطابق دقیق)

  • Search_mode -1 (آخرین به اول)
  • قرار دادن چهار آرگومان ها با هم، این فرمول را دریافت می کنیم:

    =XMATCH(H1, C2:C10, 0, -1)

    که شماره آخرین فروش انجام شده توسط لورا را برمی گرداند:

    چگونه مقایسه دو ستون در Excel برای مطابقت

    برای مقایسه دو لیست برای مطابقت، می توانید از تابع XMATCH همراه با IF و ISNA استفاده کنید:

    IF( ISNA( XMATCH( target_list , search_list ، 0))، "بدون مطابقت"، "Match")

    به عنوان مثال، برای مقایسه لیست 2 در B2:B10 با لیست 1 در A2:A10، فرمول به شکل زیر است:

    =IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Match in List 1")

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

    فرمول بالا را در بالاترین سلول (در مورد ما C2) وارد کنید، Enter را فشار دهید، و به طور خودکار در سلول های دیگر "ریخته می شود" t را محدوده ریزش می نامند):

    این فرمول چگونه کار می کند

    در قلب فرمول، تابع XMATCH جستجو می کند برای یک مقدار از لیست 2 در لیست 1. اگر مقداری پیدا شود، موقعیت نسبی آن برگردانده می شود، در غیر این صورت یک خطای #N/A. در مورد ما، نتیجه XMATCH آرایه زیر است:

    {#N/A;#N/A;2;#N/A;4;#N/A;#N/A;8;#N/A}

    این آرایه به تابع ISNA "تغذیه" می شود تا برای خطاهای #N/A بررسی شود.برای هر خطای #N/A، ایسنا TRUE را برمی‌گرداند. برای هر مقدار دیگر - FALSE. در نتیجه، آرایه‌ای از مقادیر منطقی زیر را تولید می‌کند، که در آن TRUE نشان‌دهنده عدم تطابق است، و FALSE نشان‌دهنده تطابق است:

    {TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE}

    آرایه فوق به تست منطقی تابع IF می‌رود. . بسته به نحوه پیکربندی دو آرگومان آخر، فرمول متن مربوطه را خروجی می‌دهد. در مورد ما، یک رشته خالی ("") برای غیر منطبق ( value_if_true ) و "Match in List 1" برای مطابقت ها ( value_if_false ).

    توجه داشته باشید. این فرمول فقط در اکسل 365 و اکسل 2021 که از آرایه های پویا پشتیبانی می کنند کار می کند. اگر از اکسل 2019، اکسل 2016 یا نسخه های قبلی استفاده می کنید، لطفاً راه حل های دیگر را بررسی کنید: نحوه مقایسه دو ستون در اکسل.

    INDEX XMATCH در Excel

    XMATCH را می توان در ترکیب با تابع INDEX برای بازیابی مقداری از ستون دیگری مرتبط با مقدار جستجو، درست مانند فرمول INDEX MATCH استفاده کرد. رویکرد عمومی به شرح زیر است:

    INDEX ( بازگشت _ آرایه , XMATCH ( lookup_value , lookup_array )

    منطق بسیار ساده و آسان است:

    تابع XMATCH موقعیت نسبی مقدار جستجو را در آرایه جستجو محاسبه می کند و آن را به آرگومان row_num INDEX ارسال می کند. بر اساس ردیف عدد، تابع INDEX مقداری را از هر ستونی که شما مشخص می کنید برمی گرداند.

    به عنوان مثال، برای جستجوی منطقهاز اقیانوس در E1، می توانید از این فرمول استفاده کنید:

    =INDEX(B2:B6, XMATCH(E1, A2:A6))

    INDEX XMATCH XMATCH برای انجام جستجوی دو بعدی

    به به طور همزمان در ستون ها و ردیف ها جستجو کنید، از INDEX همراه با دو تابع XMATCH استفاده کنید. XMATCH اول شماره ردیف را دریافت می کند و دومی شماره ستون را بازیابی می کند:

    INDEX ( data , XMATCH ( lookup_value , عمودی _ lookup_array )، XMATCH ( lookup value , horizontal _ lookup_array ))

    فرمول مشابه INDEX MATCH MATCH است با این تفاوت که شما می تواند آرگومان match_mode را حذف کند زیرا به طور پیش فرض مطابقت دقیق دارد.

    به عنوان مثال، برای بازیابی یک عدد فروش برای یک کالای معین (G1) در یک ماه خاص (G2)، فرمول :

    =INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))

    جایی که B2:D8 سلول های داده به استثنای سرصفحه های سطر و ستون هستند، A2:A8 لیستی از موارد و B1:D1 نام ماه هستند.

    فرمول XMATCH حساس به حروف کوچک و کوچک

    همانطور که قبلا ذکر شد، تابع XMATCH اکسل از نظر طراحی به حروف بزرگ و کوچک حساس نیست. برای وادار کردن آن به تشخیص حروف متن، از XMATCH در ترکیب با تابع EXACT استفاده کنید:

    MATCH(TRUE, EXACT( lookup_array , lookup_value ))

    برای جستجو در ترتیب معکوس از آخرین به اول:

    MATCH(TRUE, EXACT( lookup_array , lookup_value ), 0, -1)

    مثال زیر نشان می دهد این فرمول عمومی در عمل فرض کنید لیستی از شناسه محصول حساس به حروف کوچک و بزرگ در B2:B11 دارید. شما به دنبالموقعیت نسبی مورد را در E1 پیدا کنید. فرمول حساس به حروف بزرگ در E2 به همین سادگی است:

    =XMATCH(TRUE, EXACT(B2:B11, E1))

    این فرمول چگونه کار می کند:

    تابع EXACT مقدار جستجو را با هر مورد در آرایه جستجو مقایسه می کند. اگر مقادیر مقایسه شده دقیقاً برابر باشند، از جمله حروف حروف، تابع TRUE، در غیر این صورت FALSE را برمی‌گرداند. این آرایه از مقادیر منطقی (که در آن TRUE نشان دهنده تطابق دقیق است) به آرگومان lookup_array XMATCH می رود. و از آنجایی که مقدار جستجو درست است، تابع XMATCH بسته به نحوه پیکربندی آرگومان search_mode ، موقعیت اولین مطابقت یافت شده یا آخرین تطابق دقیق را برمی‌گرداند.

    XMATCH در مقابل. MATCH در اکسل

    XMATCH به عنوان جایگزینی قدرتمندتر و همه کاره برای MATCH طراحی شده است، بنابراین این دو عملکرد اشتراکات زیادی دارند. با این حال، تفاوت‌های اساسی وجود دارد.

    رفتار پیش‌فرض متفاوت

    پیش‌فرض تابع MATCH مطابقت دقیق یا کوچک‌ترین مورد بعدی را دارد ( match_type روی 1 تنظیم شده یا حذف شده است).

    عملکرد XMATCH به طور پیش فرض مطابقت دقیق دارد ( match_mode روی 0 تنظیم شده یا حذف شده است).

    رفتار متفاوت برای مطابقت تقریبی

    هنگامی که match_mode آرگومان / match_type روی 1 تنظیم شده است:

    • MATCH جستجو برای مطابقت دقیق یا کوچکترین بعدی. مستلزم این است که آرایه جستجو به ترتیب صعودی مرتب شود.
    • XMATCH دقیقاً جستجو می کند

    مایکل براون یک علاقه‌مند به فناوری است که علاقه زیادی به ساده‌سازی فرآیندهای پیچیده با استفاده از ابزارهای نرم‌افزاری دارد. او با بیش از یک دهه تجربه در صنعت فناوری، مهارت های خود را در Microsoft Excel و Outlook و همچنین Google Sheets و Docs تقویت کرده است. وبلاگ مایکل اختصاص داده شده است تا دانش و تخصص خود را با دیگران به اشتراک بگذارد و نکات و آموزش هایی را برای بهبود بهره وری و کارایی ارائه دهد. چه یک حرفه ای با تجربه باشید و چه مبتدی، وبلاگ مایکل، بینش های ارزشمند و توصیه های عملی را برای استفاده حداکثری از این ابزارهای نرم افزاری ضروری ارائه می دهد.