تابع EXACT در اکسل
تابع EXACT در اکسل برای مقایسه دقیق دو رشته متنی به کار میرود. کلیدِ تمایز این تابع با روشهای معمول مقایسه این است که EXACT حساس به حروف بزرگ و کوچک (case-sensitive) است و تفاوت «A» و «a» را تشخیص میدهد. خروجی تابع مقدار منطقی TRUE یا FALSE است.
ساختار تابع
نحو کلی تابع:
=EXACT(text1, text2)text1 و text2 میتوانند ثابتهای متنی، سلول یا نتایج توابع دیگر باشند.
مثالهای ساده
| text1 | text2 | نتیجه |
|---|---|---|
| A | a | FALSE |
| Excel | Excel | TRUE |
| 2021 | “2021” | TRUE |
| hello | hello | FALSE |
نکته: فاصلهٔ اضافی یا کاراکترهای کنترلی باعث میشوند که دو رشته برابر تشخیص داده نشوند. در مثال بالا، سلول اول شامل فاصله در انتهاست، بنابراین برابر محسوب نمیشود.
کاربردهای رایج
- بررسی تطابق دقیق دو ستون نام یا شناسهها با حساسیت به حروف بزرگ/کوچک.
- فیلتر کردن نتایج در جدول زمانی که فرق بین حروف بزرگ و کوچک مهم است.
- شناسایی تغییرات کوچک مثل فاصلههای اضافی یا تفاوت یونیکد در دادههای واردشده.
مثال فرمولها
مقایسه دو سلول ساده:
=EXACT(A1, B1)این فرمول TRUE یا FALSE برمیگرداند. کاربرد معمول: ترکیب با IF برای نمایش پیام کاربرپسند:
=IF(EXACT(A1, B1), "Match", "No Match")در مثال بالا اگر مقادیر دقیقاً برابر باشند متن “Match” نمایش داده میشود، در غیر این صورت “No Match”.
شمارش موارد برابر (حساس به حروف)
برای شمارش تعداد سلولهایی که دقیقاً با مقدار مرجع برابرند (حساس به حروف)، از SUMPRODUCT همراه با EXACT استفاده کنید:
=SUMPRODUCT(--EXACT(A2:A100, E1))این فرمول محدوده A2:A100 را با مقدار سلول E1 مقایسه میکند و تعداد دقیقاً برابرها را برمیگرداند. در نسخههای قدیمی اکسل که آرایهها باید با Ctrl+Shift+Enter تأیید شوند، SUMPRODUCT نیاز به CSE ندارد و مناسبتر است.
استفاده با FILTER (Excel 365/2021)
در نسخههای جدید میتوان رکوردهای دقیقاً برابر را با FILTER استخراج کرد:
=FILTER(A2:A100, EXACT(A2:A100, E1))این فرمول تمام رکوردهای محدوده A2:A100 را که دقیقاً با مقدار E1 برابرند برمیگرداند.
دقتهای فنی و نکات پیشرفته
- حساسیت به فضای سفید و کاراکترهای کنترلی: EXACT تفاوت بین «hello» و «hello » را تشخیص میدهد. برای حذف فاصلههای اضافی از TRIM یا CLEAN استفاده کنید: EXACT(TRIM(A1), TRIM(B1)).
- حساسیت به یونیکد: کاراکترهای ظاهراً یکسان اما با یونیکد متفاوت (مثل نیمفاصله یا فاصلهٔ غیرقابل جداشدن) توسط تابع تفاوت دارند. در این موارد پاکسازی یا تجمیع کاراکترها لازم است.
- اعداد و متن: اگر دو آرگومان عددی باشند، اکسل آنها را مقایسه میکند و در صورت برابر بودن عددی، TRUE برمیگرداند؛ اما معمولاً EXACT برای متن استفاده میشود.
- سرعت و کارایی: استفاده از EXACT روی محدودههای بسیار بزرگ میتواند پردازش را کند کند؛ در صورت امکان از ستونهای کمکی یا Power Query برای اعمال مقایسههای پیچیده استفاده کنید.
ترکیب با توابع دیگر
- برای مقایسه بدون حساسیت به حروف میتوان از LOWER یا UPPER استفاده کرد: =EXACT(LOWER(A1), LOWER(B1)) که در عمل case-insensitive میشود.
- برای جستجوی case-sensitive در بین چند ستون: از INDEX/MATCH ترکیبشده با EXACT یا با استفاده از SUMPRODUCT بهعنوان شرط استفاده کنید.
- اگر نیاز به مقایسه پیچیده با الگوها دارید، از عبارتهای با قاعده در Power Query یا VBA بهره ببرید.
مثال VBA برای مقایسه حساس به حروف
Sub CompareCaseSensitive()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim result As Boolean
result = Application.WorksheetFunction.Exact(ws.Range("A1").Value, ws.Range("B1").Value)
If result Then
MsgBox "Exact match"
Else
MsgBox "Not exact"
End If
End Subتوضیح: این ماکرو با استفاده از WorksheetFunction.Exact دو مقدار در سلولهای A1 و B1 را مقایسه میکند و پیامی نمایش میدهد. در VBA میتوانید بهجای Exact از StrComp با پارامتر vbBinaryCompare نیز استفاده کنید که مشابه case-sensitive مقایسه میکند.
اشتباهات رایج و رفع آنها
- فرض کردن اینکه EXACT فضاها را نادیده میگیرد — در صورتی که فاصلهها مهماند، از TRIM/CLEAN استفاده کنید.
- استفاده از MATCH یا VLOOKUP برای جستجوی حساس به حروف — این توابع به صورت پیشفرض case-insensitive هستند و اگر حساسیت به حروف لازم باشد، باید از ترکیبهای پیچیده یا راهکارهای جایگزین (مثل INDEX+MATCH با EXACT یا Power Query) استفاده کرد.
- عدم توجه به تفاوتهای یونیکد بین کاراکترها — پاکسازی و نرمالسازی دادهها پیش از مقایسه ضروری است.
جمعبندی و نکات نهایی
تابع EXACT ابزار ساده اما قدرتمندی برای بررسی تطابق دقیق دادهها در اکسل است، بهخصوص زمانی که حروف بزرگ و کوچک معنای متفاوتی دارند (مثلاً کدهای شناسایی یا کلمات عبور نمایششده). برای استفاده کارآمد:
- دادهها را پاکسازی و نرمالسازی کنید (TRIM, CLEAN).
- برای شمارش و فیلتر از SUMPRODUCT یا FILTER استفاده کنید.
- اگر کار با دادههای بزرگ کند شد، از Power Query یا ستونهای کمکی بهره ببرید.
با بهکارگیری صحیح EXACT و ترکیب آن با توابع دیگر، میتوانید مقایسههای حساسی را پیادهسازی کنید که راهحلهای معمول اکسل بهسادگی از پس آنها برنمیآیند.
آیا این مطلب برای شما مفید بود ؟




