معرفی تابع EXACT
تابع EXACT در اکسل برای مقایسه دقیق دو متن استفاده میشود. این تابع بررسی میکند که آیا دو مقدار متنی کاملاً مشابه هستند یا نه. نکته مهم این است که تابع EXACT به بزرگی و کوچکی حروف حساس است؛ یعنی کلمه Ali با ali یکسان در نظر گرفته نمیشود.
خروجی تابع EXACT همیشه یکی از دو مقدار TRUE یا FALSE است. اگر دو متن دقیقاً شبیه هم باشند، نتیجه TRUE میشود و اگر حتی یک تفاوت کوچک وجود داشته باشد، نتیجه FALSE خواهد بود.
برای مثال، اگر در سلول A2 نام Ali نوشته شده باشد و در سلول B2 مقدار ali قرار داشته باشد، فرمول زیر نتیجه FALSE میدهد؛ چون حرف اول در یکی بزرگ و در دیگری کوچک است.
=EXACT(A2, B2)
این تابع برای کنترل ورود دادهها، مقایسه کدها، بررسی نام کاربری، رمز عبور، شناسه کالا و تشخیص تفاوتهای پنهان در متن بسیار کاربردی است.
کاربردهای اصلی تابع EXACT
- مقایسه دقیق دو متن با حساسیت به حروف بزرگ و کوچک
- بررسی یکسان بودن نام کاربری، کد محصول، کد ملی، شناسه کارمند یا شماره سریال
- تشخیص تفاوتهای کوچک مانند فاصله اضافی در ابتدا یا انتهای متن
- مقایسه دادههای واردشده توسط کاربران با مقادیر استاندارد
- ساخت فرمولهای شرطی با IF برای نمایش پیامهای سفارشی
- شمارش یا جستجوی مقادیر به صورت حساس به حروف با ترکیب توابع دیگر
- بررسی دادههای تکراری به صورت دقیق و Case-sensitive
- کنترل کیفیت دادهها قبل از گزارشگیری یا تحلیل
ساختار (Syntax)
ساختار اصلی تابع EXACT در اکسل به شکل زیر است:
=EXACT(text1, text2)
نمایش مفهومی آرگومانها به فارسی:
=EXACT(متن_اول; متن_دوم)
تابع EXACT فقط دو آرگومان میگیرد و برای مقایسه همزمان بیش از دو متن باید آن را با توابعی مثل AND یا OR ترکیب کنید.
آرگومانها
text1 / متن اول
اولین متن یا مقداری است که میخواهید در مقایسه استفاده کنید. این مقدار میتواند مستقیماً یک متن، یک عدد، یا آدرس یک سلول باشد.
text2 / متن دوم
دومین متن یا مقداری است که با آرگومان اول مقایسه میشود. اگر متن دوم از نظر همه کاراکترها، حروف بزرگ و کوچک، فاصلهها و علائم دقیقاً مشابه متن اول باشد، نتیجه TRUE خواهد بود.
مثالهای ساده و پایه
مثال ۱: مقایسه دو نام
فرض کنید در سلول A2 مقدار Ali و در سلول B2 مقدار Ali قرار دارد. برای بررسی یکسان بودن این دو مقدار از فرمول زیر استفاده میکنیم:
=EXACT(A2, B2)
چون هر دو مقدار کاملاً یکسان هستند، نتیجه TRUE خواهد بود.
مثال ۲: تفاوت حروف بزرگ و کوچک
اگر در سلول A2 مقدار Excel و در سلول B2 مقدار excel قرار داشته باشد، فرمول زیر نتیجه FALSE برمیگرداند:
=EXACT(A2, B2)
دلیل آن این است که حرف E در مقدار اول بزرگ است، اما در مقدار دوم کوچک نوشته شده است.
مثال ۳: تفاوت به دلیل فاصله اضافی
فرض کنید در سلول A2 مقدار رضا و در سلول B2 مقدار رضا با یک فاصله اضافی در انتهای متن وجود دارد. در ظاهر ممکن است هر دو شبیه باشند، اما تابع EXACT آنها را متفاوت تشخیص میدهد.
=EXACT(A2, B2)
نتیجه این فرمول FALSE است؛ چون فاصله اضافی هم یک کاراکتر محسوب میشود.
مثال ۴: مقایسه مقدار تایپشده با مقدار ثابت
اگر بخواهید بررسی کنید مقدار سلول A2 دقیقاً برابر با کلمه Admin است، میتوانید از فرمول زیر استفاده کنید:
=EXACT(A2, "Admin")
اگر در A2 دقیقاً Admin نوشته شده باشد، نتیجه TRUE است؛ اما اگر admin یا ADMIN باشد، نتیجه FALSE میشود.
مثالهای کاربردی و واقعی
ترکیب EXACT با IF برای نمایش پیام
فرض کنید در سلول A2 رمز عبور واردشده توسط کاربر قرار دارد و در سلول B2 رمز اصلی ذخیره شده است. برای نمایش پیام مناسب میتوانید از فرمول زیر استفاده کنید:
=IF(EXACT(A2, B2), "رمز صحیح است", "رمز اشتباه است")
اگر رمز واردشده دقیقاً با رمز اصلی برابر باشد، پیام رمز صحیح است نمایش داده میشود؛ در غیر این صورت پیام رمز اشتباه است نمایش داده میشود.
ترکیب EXACT با AND برای بررسی چند شرط
فرض کنید میخواهید هم نام کاربری و هم رمز عبور را دقیق بررسی کنید. نام کاربری واردشده در A2، نام کاربری اصلی در B2، رمز واردشده در C2 و رمز اصلی در D2 قرار دارد.
=AND(EXACT(A2, B2), EXACT(C2, D2))
این فرمول فقط زمانی TRUE میدهد که هم نام کاربری و هم رمز عبور دقیقاً یکسان باشند.
ترکیب EXACT با OR برای قبول چند مقدار مجاز
فرض کنید فقط دو نقش Admin و Manager مجاز هستند و میخواهید بررسی کنید مقدار سلول A2 دقیقاً یکی از این دو نقش باشد.
=OR(EXACT(A2, "Admin"), EXACT(A2, "Manager"))
اگر مقدار A2 دقیقاً Admin یا Manager باشد، نتیجه TRUE خواهد بود. اگر admin یا manager نوشته شود، نتیجه FALSE میشود.
شمارش حساس به حروف با SUM و EXACT
تابع COUNTIF به حروف بزرگ و کوچک حساس نیست. بنابراین اگر بخواهید تعداد مواردی را بشمارید که دقیقاً با مقدار E2 برابر هستند، بهتر است از ترکیب SUM و EXACT استفاده کنید.
=SUM(--EXACT(A2:A20, E2))
این فرمول تعداد سلولهایی را میشمارد که دقیقاً از نظر متن، حروف بزرگ و کوچک و فاصلهها با مقدار E2 یکسان هستند. در نسخههای قدیمی اکسل ممکن است لازم باشد این فرمول به صورت آرایهای ثبت شود.
ترکیب COUNTIF و EXACT برای بررسی دقیقتر
گاهی میخواهید ابتدا بررسی کنید یک مقدار در محدوده وجود دارد یا نه، سپس بررسی کنید آیا مطابقت دقیق و حساس به حروف هم وجود دارد یا خیر.
=IF(COUNTIF(A2:A20, E2)=0, "وجود ندارد", IF(SUMPRODUCT(--EXACT(A2:A20, E2))=0, "فقط مشابه غیرحساس وجود دارد", "مطابقت دقیق وجود دارد"))
این فرمول ابتدا با COUNTIF وجود مقدار را بررسی میکند، سپس با EXACT تشخیص میدهد که آیا مقدار دقیقاً با همان حروف و کاراکترها وجود دارد یا نه.
جستجوی حساس به حروف با XLOOKUP و EXACT
تابع XLOOKUP به صورت معمول به بزرگی و کوچکی حروف حساس نیست. اما با ترکیب آن با EXACT میتوان جستجوی حساس به حروف انجام داد. فرض کنید کدها در محدوده A2:A10 و نام کالاها در محدوده B2:B10 قرار دارند و کد موردنظر در E2 وارد شده است.
=XLOOKUP(TRUE, EXACT(A2:A10, E2), B2:B10, "یافت نشد")
این فرمول اولین ردیفی را پیدا میکند که مقدار ستون A دقیقاً با مقدار E2 برابر باشد و سپس مقدار متناظر را از ستون B برمیگرداند.
ترکیب تابع EXACT با فرمولهای دیگر
- ترکیب با IF برای نمایش پیام سفارشی بر اساس یکسان بودن یا نبودن دو مقدار
=IF(EXACT(A2, B2), "یکسان", "متفاوت")
- ترکیب با AND برای بررسی چند مقایسه دقیق به صورت همزمان
=AND(EXACT(A2, B2), EXACT(C2, D2))
- ترکیب با OR برای پذیرش چند مقدار دقیق و مجاز
=OR(EXACT(A2, "Active"), EXACT(A2, "Pending"))
- ترکیب با NOT برای تشخیص متفاوت بودن دقیق دو مقدار
=NOT(EXACT(A2, B2))
- ترکیب با SUMPRODUCT برای شمارش مقادیر کاملاً یکسان و حساس به حروف
=SUMPRODUCT(--EXACT(A2:A100, E2))
- ترکیب با FILTER برای استخراج ردیفهای دارای مطابقت دقیق در نسخههای جدید اکسل
=FILTER(A2:C100, EXACT(A2:A100, E2), "موردی یافت نشد")
- ترکیب با XLOOKUP برای جستجوی دقیق و حساس به حروف
=XLOOKUP(TRUE, EXACT(A2:A100, E2), B2:B100, "یافت نشد")
خطاهای رایج و روش رفع آنها
۱. نتیجه FALSE به دلیل فاصله اضافی
یکی از رایجترین مشکلات در استفاده از EXACT وجود فاصله اضافی در ابتدا، انتها یا بین کلمات است. این فاصلهها ممکن است در ظاهر دیده نشوند، اما تابع EXACT آنها را تشخیص میدهد.
روش رفع: برای حذف فاصلههای اضافی معمولی میتوانید از تابع TRIM استفاده کنید.
=EXACT(TRIM(A2), TRIM(B2))
۲. نتیجه FALSE به دلیل تفاوت حروف بزرگ و کوچک
تابع EXACT به حروف بزرگ و کوچک حساس است. بنابراین Excel و excel یکسان نیستند.
روش رفع: اگر حساسیت به بزرگی و کوچکی حروف برای شما مهم نیست، بهتر است به جای EXACT از مقایسه معمولی یا تبدیل متنها به یک حالت یکسان استفاده کنید.
=EXACT(LOWER(A2), LOWER(B2))
۳. تفاوت کاراکترهای فارسی و عربی
در زبان فارسی، بعضی کاراکترها ممکن است شبیه هم دیده شوند اما کد متفاوتی داشته باشند؛ مانند ی فارسی و ي عربی یا ک فارسی و ك عربی. تابع EXACT این موارد را متفاوت تشخیص میدهد.
روش رفع: قبل از مقایسه، متنها را استانداردسازی کنید. برای نمونه میتوانید با SUBSTITUTE کاراکتر عربی را به فارسی تبدیل کنید.
=EXACT(SUBSTITUTE(A2, "ي", "ی"), SUBSTITUTE(B2, "ي", "ی"))
۴. وجود کاراکترهای نامرئی یا غیرقابل چاپ
گاهی دادهها از سایتها، نرمافزارهای حسابداری یا فایلهای دیگر کپی میشوند و شامل کاراکترهای نامرئی هستند. این کاراکترها باعث میشوند EXACT نتیجه FALSE بدهد.
روش رفع: از تابع CLEAN برای حذف برخی کاراکترهای غیرقابل چاپ استفاده کنید.
=EXACT(CLEAN(A2), CLEAN(B2))
۵. استفاده از محدودهها با اندازههای متفاوت
اگر در ترکیب EXACT با توابع آرایهای از دو محدوده با تعداد سلول متفاوت استفاده کنید، احتمال بروز خطا یا نتیجه نامعتبر وجود دارد.
روش رفع: مطمئن شوید دو محدوده دقیقاً هماندازه هستند.
=SUMPRODUCT(--EXACT(A2:A20, B2:B20))
۶. انتظار حساس بودن COUNTIF به حروف
تابع COUNTIF به بزرگی و کوچکی حروف حساس نیست. بنابراین اگر با COUNTIF دنبال شمارش دقیق و حساس به حروف هستید، نتیجه ممکن است مطابق انتظار نباشد.
روش رفع: برای شمارش حساس به حروف، از SUMPRODUCT و EXACT استفاده کنید.
=SUMPRODUCT(--EXACT(A2:A50, E2))
۷. مشکل جداکننده آرگومانها در تنظیمات منطقهای اکسل
در بعضی نسخهها یا تنظیمات منطقهای اکسل، جداکننده آرگومانها به جای کاما، نقطهویرگول است. اگر فرمول خطا داد، جداکنندهها را مطابق تنظیمات اکسل خود تغییر دهید.
=EXACT(A2; B2)
نکات حرفهای و ترفندهای مهم
- تابع EXACT فقط ظاهر متن را مقایسه نمیکند؛ بلکه کاراکترهای واقعی داخل سلول را بررسی میکند.
- اگر دادهها را از منابع خارجی دریافت میکنید، قبل از مقایسه از TRIM و CLEAN استفاده کنید.
- برای دادههای فارسی، به تفاوت حروف فارسی و عربی مانند ی و ي یا ک و ك توجه کنید.
- اگر به حروف بزرگ و کوچک حساس نیستید، استفاده از EXACT ضروری نیست.
- برای شمارش حساس به حروف، COUNTIF به تنهایی مناسب نیست؛ از EXACT همراه با SUMPRODUCT استفاده کنید.
- برای جستجوی حساس به حروف در اکسلهای جدید، ترکیب XLOOKUP و EXACT بسیار کاربردی است.
- برای خوانایی بهتر، فرمولهای پیچیده را مرحلهبهمرحله بسازید و ابتدا نتیجه EXACT را در یک ستون کمکی بررسی کنید.
- در فایلهای بزرگ، استفاده زیاد از فرمولهای آرایهای ممکن است سرعت محاسبه را کاهش دهد؛ در صورت امکان محدودهها را محدود و مشخص انتخاب کنید.
- تابع EXACT تفاوت قالببندی مثل رنگ، فونت یا اندازه متن را بررسی نمیکند؛ فقط مقدار واقعی متن را مقایسه میکند.
- اگر از Microsoft 365 استفاده میکنید، میتوانید EXACT را با توابع جدیدی مثل FILTER و XLOOKUP راحتتر ترکیب کنید.
تفاوت تابع EXACT با توابع مشابه
تفاوت EXACT با عملگر مساوی
در اکسل، مقایسه معمولی معمولاً به بزرگی و کوچکی حروف حساس نیست. اما EXACT حساس است.
=A2=B2
این فرمول ممکن است Ali و ali را برابر در نظر بگیرد، اما فرمول زیر آنها را متفاوت تشخیص میدهد.
=EXACT(A2, B2)
تفاوت EXACT با COUNTIF
تابع COUNTIF برای شمارش مقادیر کاربرد دارد، اما به حروف بزرگ و کوچک حساس نیست. اگر بخواهید شمارش دقیق و حساس به حروف انجام دهید، باید از EXACT در کنار SUMPRODUCT استفاده کنید.
=COUNTIF(A2:A20, E2)
=SUMPRODUCT(--EXACT(A2:A20, E2))
تفاوت EXACT با FIND و SEARCH
تابع FIND برای پیدا کردن موقعیت یک متن داخل متن دیگر استفاده میشود و به حروف بزرگ و کوچک حساس است. تابع SEARCH هم مشابه FIND است، اما معمولاً به بزرگی و کوچکی حروف حساس نیست. در مقابل، EXACT بررسی میکند که کل دو متن کاملاً با هم برابر باشند.
=FIND("A", A2)=SEARCH("A", A2)=EXACT(A2, B2)
تفاوت EXACT با MATCH و XLOOKUP
توابعی مثل MATCH و XLOOKUP برای جستجو استفاده میشوند، اما جستجوی معمول آنها حساس به حروف نیست. اگر بخواهید جستجو Case-sensitive باشد، باید EXACT را به آنها اضافه کنید.
=XLOOKUP(TRUE, EXACT(A2:A20, E2), B2:B20, "یافت نشد")
سازگاری با نسخههای مختلف اکسل
تابع EXACT از توابع قدیمی و پایهای اکسل است و در بیشتر نسخههای اکسل پشتیبانی میشود.
- Excel 2007
- Excel 2010
- Excel 2013
- Excel 2016
- Excel 2019
- Excel 2021
- Microsoft 365
- Excel for Mac
- Excel Online
خود تابع EXACT در نسخههای قدیمی هم قابل استفاده است، اما بعضی ترکیبها مثل XLOOKUP و FILTER فقط در نسخههای جدیدتر مانند Excel 2021 و Microsoft 365 در دسترس هستند.
در نسخههای قدیمی اکسل، بعضی فرمولهای آرایهای که با EXACT نوشته میشوند ممکن است نیاز به ثبت به صورت فرمول آرایهای داشته باشند. در نسخههای جدید Microsoft 365، بسیاری از این فرمولها به صورت خودکار با Dynamic Array کار میکنند.
سؤالات پرتکرار درباره تابع EXACT
آیا تابع EXACT به حروف بزرگ و کوچک حساس است؟
بله. مهمترین ویژگی تابع EXACT همین حساسیت به حروف بزرگ و کوچک است.
آیا تابع EXACT فاصلههای اضافی را تشخیص میدهد؟
بله. اگر یکی از متنها حتی یک فاصله اضافه داشته باشد، نتیجه FALSE میشود.
آیا EXACT قالببندی سلولها را هم مقایسه میکند؟
خیر. این تابع رنگ، فونت، اندازه، Bold بودن یا سایر قالببندیها را بررسی نمیکند و فقط مقدار متن را مقایسه میکند.
آیا میتوان با EXACT بیش از دو متن را مقایسه کرد؟
تابع EXACT خودش فقط دو آرگومان دارد، اما میتوانید آن را با AND ترکیب کنید تا چند مقایسه را همزمان بررسی کنید.
=AND(EXACT(A2, B2), EXACT(B2, C2))
چرا EXACT برای دو متن ظاهراً مشابه نتیجه FALSE میدهد؟
احتمالاً یکی از متنها دارای فاصله اضافه، کاراکتر نامرئی، تفاوت حروف بزرگ و کوچک یا تفاوت کاراکترهای مشابه فارسی و عربی است.
آیا EXACT برای اعداد هم کار میکند؟
بله، اما کاربرد اصلی آن مقایسه متن است. برای مقایسه عددی ساده معمولاً از عملگر مساوی استفاده میشود، ولی برای کدها و شناسههایی که به صورت متن ذخیره شدهاند، EXACT بسیار مفید است.
آیا COUNTIF میتواند جایگزین EXACT شود؟
خیر، اگر حساسیت به حروف بزرگ و کوچک برای شما مهم است، COUNTIF به تنهایی جایگزین مناسبی نیست.
جمعبندی و پیشنهاد یادگیری بعدی
تابع EXACT یکی از توابع ساده اما بسیار کاربردی اکسل برای مقایسه دقیق متنهاست. این تابع زمانی اهمیت پیدا میکند که تفاوتهای کوچک مانند حروف بزرگ و کوچک، فاصله اضافه، کاراکترهای نامرئی یا تفاوت حروف فارسی و عربی برای شما مهم باشد.
اگر با دادههایی مثل کد کالا، نام کاربری، رمز عبور، شناسه مشتری، شماره سریال یا مقادیر متنی حساس کار میکنید، تابع EXACT میتواند جلوی بسیاری از خطاهای پنهان را بگیرد.
برای یادگیری بهتر، پیشنهاد میشود بعد از EXACT سراغ توابع IF، AND، OR، TRIM، CLEAN، SUBSTITUTE، COUNTIF، SUMPRODUCT، FILTER و XLOOKUP بروید؛ چون ترکیب این توابع با EXACT قدرت بسیار بیشتری در کنترل و تحلیل دادهها به شما میدهد.
