معرفی تابع OR
تابع OR در اکسل یکی از توابع منطقی بسیار پرکاربرد است که بررسی میکند آیا حداقل یکی از چند شرط مشخصشده درست است یا نه. اگر حتی یکی از شرطها درست باشد، نتیجه تابع OR برابر TRUE میشود. فقط زمانی نتیجه FALSE خواهد بود که همه شرطها نادرست باشند.
این تابع زمانی کاربرد دارد که بخواهید بین چند شرط، کافی باشد فقط یکی برقرار باشد. مثلا اگر دانشآموزی یا نمره ریاضی بالای 18 داشته باشد یا نمره علوم بالای 18، او را به عنوان دانشآموز ممتاز در نظر بگیریم.
مثال ساده: اگر مقدار سلول A2 بیشتر از 100 باشد یا مقدار سلول B2 برابر با “بله” باشد، نتیجه درست برگردد.
=OR(A2>100,B2="بله")
در این مثال اگر A2 بزرگتر از 100 باشد یا B2 برابر “بله” باشد، خروجی TRUE خواهد بود. اگر هیچکدام از این دو شرط برقرار نباشد، خروجی FALSE میشود.
کاربردهای اصلی تابع OR
- بررسی همزمان چند شرط و قبول کردن نتیجه در صورت درست بودن حداقل یکی از آنها
- استفاده در کنار تابع IF برای ساخت تصمیمهای شرطی
- کنترل وضعیت فروش، پرداخت، حضور، انبار یا عملکرد کارکنان
- بررسی دادهها در گزارشهای مدیریتی و داشبوردها
- ساخت قوانین اعتبارسنجی دادهها در Data Validation
- استفاده در Conditional Formatting برای رنگی کردن سلولها بر اساس چند شرط
- ترکیب با توابعی مانند AND، SUM، COUNTIF، XLOOKUP و IFERROR
- بررسی اینکه آیا یک مقدار در یکی از چند حالت موردنظر قرار دارد یا خیر
ساختار (Syntax)
ساختار انگلیسی تابع OR به شکل زیر است:
=OR(logical1, logical2, ...)
ساختار مفهومی فارسی تابع OR به شکل زیر است:
=OR(شرط۱; شرط۲; ...)
در نسخه انگلیسی اکسل معمولا از کاما برای جدا کردن آرگومانها استفاده میشود. اما در بسیاری از تنظیمات منطقهای، از جمله برخی سیستمهای فارسی، جداکننده آرگومانها ممکن است نقطهویرگول باشد.
آرگومانها
logical1 / شرط اول
اولین شرطی است که تابع OR بررسی میکند. این آرگومان اجباری است و میتواند یک مقایسه، مقدار منطقی TRUE یا FALSE، یا نتیجه یک فرمول دیگر باشد.
=OR(A2>50)
در این مثال بررسی میشود که آیا مقدار سلول A2 بیشتر از 50 است یا خیر.
logical2 / شرط دوم
شرط دوم اختیاری است. اگر شرط اول نادرست باشد، تابع OR شرط دوم را نیز بررسی میکند. اگر شرط دوم درست باشد، نتیجه کل تابع TRUE خواهد بود.
=OR(A2>50,B2="قبول")
در این مثال اگر A2 بیشتر از 50 باشد یا B2 برابر “قبول” باشد، خروجی TRUE میشود.
logical3 تا logical255 / شرطهای بعدی
تابع OR میتواند چندین شرط را بررسی کند. در نسخههای جدید اکسل، میتوانید تا 255 آرگومان منطقی وارد کنید. البته برای خوانایی بهتر، پیشنهاد میشود تعداد شرطها را بیش از حد زیاد نکنید و در صورت نیاز از روشهای جایگزین مانند COUNTIF یا MATCH استفاده کنید.
=OR(A2="تهران",A2="شیراز",A2="اصفهان")
در این مثال اگر مقدار A2 یکی از شهرهای تهران، شیراز یا اصفهان باشد، نتیجه TRUE خواهد بود.
مثالهای ساده و پایه
مثال ۱: بررسی قبولی دانشآموز
فرض کنید نمره ریاضی در سلول B2 و نمره علوم در سلول C2 قرار دارد. اگر دانشآموز در یکی از این دو درس نمره بالای 18 گرفته باشد، میخواهیم نتیجه TRUE شود.
=OR(B2>18,C2>18)
اگر B2 برابر 19 و C2 برابر 15 باشد، نتیجه TRUE است؛ چون یکی از شرطها برقرار است.
مثال ۲: بررسی وضعیت پرداخت
فرض کنید وضعیت پرداخت در سلول D2 و وضعیت تایید مدیر در سلول E2 قرار دارد. اگر پرداخت انجام شده باشد یا مدیر تایید کرده باشد، نتیجه TRUE شود.
=OR(D2="پرداخت شد",E2="تایید")
اگر یکی از این دو وضعیت وجود داشته باشد، تابع OR خروجی TRUE برمیگرداند.
مثال ۳: استفاده از OR همراه با IF
تابع OR معمولا به تنهایی کمتر در گزارش نهایی استفاده میشود و بیشتر آن را داخل تابع IF قرار میدهیم تا خروجی خواناتر باشد.
=IF(OR(B2>18,C2>18),"ممتاز","عادی")
در این مثال اگر نمره ریاضی یا علوم بیشتر از 18 باشد، خروجی “ممتاز” نمایش داده میشود؛ در غیر این صورت خروجی “عادی” خواهد بود.
مثال ۴: بررسی عدد خارج از بازه
فرض کنید مقدار فروش در سلول B2 قرار دارد. اگر فروش کمتر از 100 یا بیشتر از 1000 باشد، میخواهیم بدانیم مقدار غیرعادی است.
=OR(B21000)
اگر فروش 80 باشد، نتیجه TRUE است. اگر فروش 500 باشد، نتیجه FALSE است؛ چون داخل بازه طبیعی قرار دارد.
مثالهای کاربردی و واقعی
مثال ۱: تشخیص نیاز به پیگیری سفارش
فرض کنید در یک فایل فروش، وضعیت پرداخت در ستون C و وضعیت ارسال در ستون D قرار دارد. اگر پرداخت انجام نشده باشد یا ارسال انجام نشده باشد، سفارش نیاز به پیگیری دارد.
=IF(OR(C2="پرداخت نشده",D2="ارسال نشده"),"نیاز به پیگیری","بدون مشکل")
این فرمول برای تیم فروش بسیار کاربردی است، چون سفارشهایی را مشخص میکند که حداقل در یکی از مراحل مشکل دارند.
مثال ۲: ترکیب OR با SUM
فرض کنید فروش سه ماه اول در سلولهای B2 تا D2 قرار دارد. اگر مجموع فروش کمتر از 300 باشد یا فروش ماه سوم کمتر از 50 باشد، وضعیت نیازمند بررسی است.
=IF(OR(SUM(B2:D2)<300,D2<50),"بررسی شود","مناسب")
در این مثال تابع SUM ابتدا مجموع فروش را محاسبه میکند و سپس تابع OR بررسی میکند که آیا حداقل یکی از شرایط هشدار برقرار است یا نه.
مثال ۳: ترکیب AND و OR برای شرطهای دقیقتر
فرض کنید اگر مشتری عضو باشگاه مشتریان باشد و یا خرید بالای 2,000,000 داشته باشد یا تعداد سفارشهای او بیشتر از 5 باشد، تخفیف دریافت کند. وضعیت عضویت در B2، مبلغ خرید در C2 و تعداد سفارشها در D2 قرار دارد.
=IF(AND(B2="عضو",OR(C2>2000000,D2>5)),"تخفیف دارد","بدون تخفیف")
در این مثال ابتدا باید مشتری عضو باشد. سپس کافی است یکی از دو شرط مبلغ خرید بالا یا تعداد سفارش زیاد برقرار باشد.
مثال ۴: ترکیب OR با COUNTIF
فرض کنید نام شهر مشتری در سلول B2 قرار دارد. میخواهیم اگر شهر مشتری تهران، کرج یا قم بود، ارسال سریع فعال شود. یکی از روشها استفاده مستقیم از OR است.
=IF(OR(B2="تهران",B2="کرج",B2="قم"),"ارسال سریع","ارسال عادی")
اما اگر لیست شهرها طولانی باشد، بهتر است شهرهای مجاز را در محدوده H2:H10 قرار دهیم و از COUNTIF استفاده کنیم.
=IF(COUNTIF(H2:H10,B2)>0,"ارسال سریع","ارسال عادی")
در این حالت به جای نوشتن چندین شرط داخل OR، کافی است لیست شهرها را در یک محدوده نگهداری کنید.
مثال ۵: ترکیب OR با XLOOKUP
فرض کنید کد کالا در سلول A2 قرار دارد و میخواهیم نام کالا را از جدول محصولات پیدا کنیم. اگر کالا پیدا نشد یا وضعیت آن غیرفعال بود، پیام مناسب نمایش داده شود. نام کالا در ستون F، کد کالا در ستون E و وضعیت کالا در ستون G قرار دارد.
=IF(OR(XLOOKUP(A2,E:E,G:G,"یافت نشد")="غیرفعال",XLOOKUP(A2,E:E,G:G,"یافت نشد")="یافت نشد"),"قابل فروش نیست",XLOOKUP(A2,E:E,F:F,"نامشخص"))
این فرمول بررسی میکند اگر وضعیت کالا “غیرفعال” بود یا اصلا کد کالا پیدا نشد، خروجی “قابل فروش نیست” نمایش داده شود؛ در غیر این صورت نام کالا برگردانده میشود.
ترکیب تابع OR با فرمولهای دیگر
- ترکیب با IF برای نمایش خروجی متنی به جای TRUE و FALSE
=IF(OR(B2>100,C2>100),"هدف محقق شد","هدف محقق نشد")
- ترکیب با AND برای ساخت شرطهای چندلایه
=IF(AND(A2="فعال",OR(B2>500,C2>10)),"مجاز","غیرمجاز")
- ترکیب با SUM برای بررسی مجموع چند مقدار
=IF(OR(SUM(B2:D2)>1000,E2="ویژه"),"پاداش","بدون پاداش")
- ترکیب با COUNTIF برای بررسی وجود یک مقدار در لیست
=IF(COUNTIF(A2:A20,"غایب")>0,"حداقل یک غیبت وجود دارد","بدون غیبت")
- ترکیب با XLOOKUP برای جستجو و تصمیمگیری شرطی
=IF(OR(XLOOKUP(A2,D:D,E:E,"ناموجود")="ناموجود",XLOOKUP(A2,D:D,F:F,0)=0),"بررسی شود","تایید")
- ترکیب با IFERROR برای کنترل خطاها
=IFERROR(IF(OR(B2/C2>2,D2="ویژه"),"مهم","عادی"),"خطا در دادهها")
- استفاده در Conditional Formatting برای رنگی کردن سلولها
=OR($B2="فوری",$C2<10)
در Conditional Formatting میتوانید از این فرمول استفاده کنید تا ردیفهایی که وضعیت فوری دارند یا موجودی آنها کمتر از 10 است، رنگی شوند.
خطاهای رایج و روش رفع آنها
۱. استفاده از OR به جای AND
یکی از رایجترین اشتباهها این است که کاربر میخواهد همه شرطها همزمان برقرار باشند، اما به اشتباه از OR استفاده میکند. تابع OR زمانی مناسب است که برقرار بودن یکی از شرطها کافی باشد.
روش رفع: اگر میخواهید همه شرطها درست باشند، از تابع AND استفاده کنید.
=AND(B2>10,C2>10)
۲. انتظار خروجی متنی از تابع OR
تابع OR به تنهایی فقط TRUE یا FALSE برمیگرداند. اگر میخواهید خروجیهایی مانند “قبول”، “رد”، “نیاز به بررسی” یا “مجاز” نمایش داده شود، باید OR را داخل IF قرار دهید.
روش رفع: تابع OR را با IF ترکیب کنید.
=IF(OR(B2>=10,C2>=10),"قبول","رد")
۳. اشتباه در جداکننده آرگومانها
در بعضی سیستمها باید بین آرگومانها از کاما استفاده شود و در بعضی سیستمها از نقطهویرگول. اگر فرمول خطا داد، ممکن است مشکل از جداکننده باشد.
روش رفع: بر اساس تنظیمات اکسل خود از جداکننده درست استفاده کنید.
=OR(A2>10,B2>10)
=OR(A2>10;B2>10)
۴. نوشتن متن بدون علامت نقلقول
وقتی در فرمول اکسل میخواهید یک متن را مقایسه کنید، باید آن متن داخل علامت نقلقول قرار بگیرد. در غیر این صورت اکسل ممکن است آن را به عنوان نام محدوده یا متغیر تشخیص دهد و خطا بدهد.
روش رفع: متنها را داخل علامت نقلقول قرار دهید.
=OR(B2="فعال",C2="تایید")
۵. استفاده زیاد از شرطهای تکراری
گاهی کاربران برای بررسی یک مقدار در چند حالت مختلف، تعداد زیادی شرط داخل OR مینویسند. این کار باعث طولانی و سختخوان شدن فرمول میشود.
روش رفع: اگر لیست شرایط زیاد است، از COUNTIF یا MATCH استفاده کنید.
=COUNTIF(H2:H20,B2)>0
۶. نادیده گرفتن سلولهای خالی
سلول خالی در بسیاری از مقایسهها ممکن است نتیجه غیرمنتظره ایجاد کند. مثلا اگر سلول خالی را با عدد مقایسه کنید، ممکن است تحلیل شما دقیق نباشد.
روش رفع: قبل از بررسی شرط، خالی نبودن سلول را هم کنترل کنید.
=IF(OR(B2="",C2=""),"داده ناقص","داده کامل")
۷. پیچیده شدن بیش از حد فرمول
اگر تابع OR را با چند تابع دیگر ترکیب کنید و فرمول خیلی طولانی شود، احتمال خطا و سختی نگهداری بالا میرود.
روش رفع: فرمول را به چند ستون کمکی تقسیم کنید یا از توابع جدیدتر مانند LET در نسخههای جدید اکسل استفاده کنید.
=LET(وضعیت,OR(B2>100,C2="ویژه"),IF(وضعیت,"تایید","رد"))
نکات حرفهای و ترفندهای مهم
- اگر فقط میخواهید بدانید حداقل یکی از شرطها درست است، OR بهترین انتخاب است.
- برای نمایش خروجی قابل فهم، OR را معمولا داخل IF استفاده کنید.
- اگر تعداد شرطها زیاد است، به جای نوشتن چندین شرط داخل OR از COUNTIF، MATCH یا XLOOKUP استفاده کنید.
- برای خوانایی بهتر، شرطهای مرتبط را کنار هم بنویسید و از پرانتزها درست استفاده کنید.
- در ترکیب AND و OR، همیشه ترتیب منطق را بررسی کنید؛ چون یک پرانتز اشتباه میتواند نتیجه کل فرمول را تغییر دهد.
- برای بررسی مقدارهای متنی، حتما از علامت نقلقول استفاده کنید.
- اگر فرمول شما در یک سیستم کار میکند اما در سیستم دیگر خطا میدهد، جداکننده آرگومانها را بررسی کنید.
- در اکسل 365 و نسخههای جدید، میتوانید برای سادهسازی فرمولهای طولانی از LET استفاده کنید.
- در Conditional Formatting، هنگام استفاده از OR به قفل کردن ستون یا ردیف با علامت دلار توجه کنید.
- اگر میخواهید شرطها را پویا کنید، بهتر است معیارها را در سلولها یا جدول جداگانه قرار دهید، نه اینکه همه را داخل فرمول بنویسید.
تفاوت تابع OR با توابع مشابه
تفاوت OR با AND
تابع OR زمانی TRUE میدهد که حداقل یکی از شرطها درست باشد. اما تابع AND فقط زمانی TRUE میدهد که همه شرطها درست باشند.
=OR(A2>10,B2>10)
=AND(A2>10,B2>10)
اگر A2 برابر 15 و B2 برابر 5 باشد، فرمول OR نتیجه TRUE میدهد، اما فرمول AND نتیجه FALSE میدهد.
تفاوت OR با IF
تابع IF برای تصمیمگیری استفاده میشود و بر اساس نتیجه یک شرط، دو خروجی مختلف نمایش میدهد. تابع OR فقط بررسی میکند که آیا حداقل یکی از چند شرط درست است یا نه. در عمل، OR اغلب داخل IF قرار میگیرد.
=IF(OR(A2>10,B2>10),"قبول","رد")
تفاوت OR با XOR
تابع XOR زمانی TRUE میدهد که تعداد شرطهای درست فرد باشد. اما OR اگر یک یا چند شرط درست باشد، TRUE میدهد. بنابراین وقتی چند شرط همزمان درست باشند، رفتار OR و XOR ممکن است متفاوت شود.
=XOR(A2>10,B2>10)
اگر هر دو شرط درست باشند، OR نتیجه TRUE میدهد، اما XOR نتیجه FALSE میدهد.
تفاوت OR با COUNTIF
تابع OR برای بررسی چند شرط منطقی مستقیم مناسب است. اما اگر میخواهید بررسی کنید یک مقدار در یک لیست وجود دارد یا نه، COUNTIF معمولا سادهتر و تمیزتر است.
=OR(B2="تهران",B2="کرج",B2="قم")
=COUNTIF(H2:H10,B2)>0
اگر تعداد گزینهها زیاد باشد، روش COUNTIF بهتر است؛ چون فقط کافی است لیست گزینهها را تغییر دهید، نه خود فرمول را.
سازگاری با نسخههای مختلف اکسل
تابع OR از توابع قدیمی و اصلی اکسل است و تقریبا در همه نسخههای اکسل پشتیبانی میشود.
- Excel 2007
- Excel 2010
- Excel 2013
- Excel 2016
- Excel 2019
- Excel 2021
- Microsoft 365
- Excel Online
- Excel for Mac
نکته مهم این است که خود تابع OR در همه این نسخهها کار میکند، اما توابعی مانند XLOOKUP و LET فقط در نسخههای جدیدتر مانند Microsoft 365 و Excel 2021 پشتیبانی میشوند. بنابراین اگر فایل شما قرار است در نسخههای قدیمیتر باز شود، در ترکیب OR با توابع جدید احتیاط کنید.
سؤالات پرتکرار درباره تابع OR
آیا تابع OR فقط دو شرط را بررسی میکند؟
خیر. تابع OR میتواند چندین شرط را بررسی کند. در نسخههای جدید اکسل امکان استفاده از تعداد زیادی آرگومان وجود دارد، اما بهتر است برای خوانایی فرمول، شرطها را بیش از حد زیاد نکنید.
خروجی تابع OR چیست؟
خروجی تابع OR فقط TRUE یا FALSE است. اگر خروجی متنی یا عددی میخواهید، آن را با IF ترکیب کنید.
چه زمانی از OR استفاده کنیم؟
زمانی که کافی است حداقل یکی از چند شرط درست باشد. مثلا اگر مشتری عضو ویژه باشد یا مبلغ خرید او بالا باشد، تخفیف بگیرد.
آیا OR به حروف بزرگ و کوچک حساس است؟
در مقایسههای متنی معمولی اکسل، تابع OR به تنهایی حساسیت خاصی به بزرگی و کوچکی حروف انگلیسی ایجاد نمیکند. اگر به مقایسه حساس به حروف نیاز دارید، باید از توابع دیگری مانند EXACT استفاده کنید.
=OR(EXACT(A2,"VIP"),EXACT(A2,"Gold"))
آیا میتوان OR را در Conditional Formatting استفاده کرد؟
بله. یکی از کاربردهای بسیار خوب OR، استفاده در Conditional Formatting است. مثلا میتوانید سلولهایی را رنگی کنید که وضعیت آنها “فوری” است یا موجودی آنها کمتر از حد مجاز است.
=OR($B2="فوری",$C2<5)
آیا میتوان OR را با محدوده سلولی استفاده کرد؟
بله، اما باید دقت کنید که رفتار آن به نوع فرمول و نسخه اکسل بستگی دارد. در بسیاری از موارد بهتر است به جای دادن مستقیم محدوده به OR، از توابعی مانند COUNTIF یا SUM استفاده کنید.
=SUM(B2:B10)>0
اگر همه شرطها نادرست باشند، OR چه نتیجهای میدهد؟
اگر هیچکدام از شرطها درست نباشند، خروجی تابع OR برابر FALSE خواهد بود.
جمعبندی و پیشنهاد یادگیری بعدی
تابع OR یکی از مهمترین توابع منطقی اکسل است که برای بررسی چند شرط استفاده میشود. هر زمان که در تحلیل دادهها کافی باشد فقط یکی از چند شرط برقرار باشد، OR انتخاب مناسبی است. این تابع بهخصوص وقتی با IF ترکیب شود، در گزارشسازی، کنترل وضعیتها، مدیریت فروش، بررسی عملکرد و ساخت داشبوردهای کاربردی بسیار مفید خواهد بود.
برای استفاده حرفهایتر از OR، پیشنهاد میشود در قدم بعدی توابع IF، AND، COUNTIF، SUMIF، XLOOKUP و LET را یاد بگیرید. با یادگیری این توابع، میتوانید فرمولهای منطقی دقیقتر، خواناتر و قدرتمندتری در اکسل بسازید.
