فیلتر چندشرطی با ترکیب AND و OR در تابع FILTER اکسل
«پرسنل بخش اورژانس که وضعیت استخدامشان رسمی است»، یا «پرسنل اورژانس و ICU که اضافهکار زیادی دارند» سوال هایی هستند که با یک شرط ساده FILTER جواب نمیدهند؛ اینجا چند شرط باید همزمان یا بهصورت جایگزین هم در یک فرمول FILTER ترکیب شوند.
برای فیلتر تکشرطی ساده (مثلا گرفتن گردش کل فقط با نام یک حساب) پست جداگانه آموزش تابع FILTER برای گزارش گردش کل حساب را ببینید؛ اینجا تمرکز فقط روی ترکیب چند شرط با هم در یک فرمول FILTER است.
ترکیب دو شرط با AND؛ علامت ضرب
برای اینکه همه شرطها همزمان برقرار باشند (AND)، هر شرط را داخل پرانتز جداگانه بنویسید و پرانتزها را با علامت ضرب * به هم وصل کنید. مثلا برای گرفتن فقط پرسنل بخش اورژانس با وضعیت استخدام رسمی:
=FILTER(A2:F11,(C2:C11="اورژانس")*(D2:D11="رسمی"),"موردی یافت نشد")

منطق ریاضی این کار ساده است؛ هر شرط یک آرایه از TRUE و FALSE (که در محاسبات مثل ۱ و ۰ رفتار میکنند) برمیگرداند. وقتی دو آرایه در هم ضرب شوند، فقط جایی که هر دو ۱ (TRUE) باشند، نتیجه ۱ میشود.
ترکیب چند مقدار یک ستون با OR؛ علامت جمع، بههمراه AND
برای اینکه کافی باشد یکی از چند شرط برقرار باشد (OR)، پرانتزهای شرط را با علامت جمع + به هم وصل کنید. برای مثال پرسنل بخش اورژانس یا ICU که اضافهکارشان بیش از بیست ساعت است؛ اینجا OR بین دو بخش و AND با آستانه ساعت با هم ترکیب شدهاند:
=FILTER(A2:F11,((C2:C11="اورژانس")+(C2:C11="ICU"))*(F2:F11>20),"موردی یافت نشد")

نکته مهم ترتیب پرانتزها است؛ ابتدا شرطهای OR داخل یک پرانتز جمع میشوند، بعد کل آن پرانتز در شرط AND ضرب میشود. اگر پرانتزبندی رعایت نشود، اکسل عملگرها را به ترتیب اشتباه اجرا میکند و نتیجه غلط میشود.
حذف یک مقدار خاص از نتیجه با NOT
گاهی راحتتر است بگویید «همه به جز یک مورد خاص»؛ برای این کار شرط را داخل تابع NOT بگذارید تا معکوس شود. مثلا همه پرسنل رسمی، به جز کسانی که بخششان اداری مالی است:
=FILTER(A2:F11,(D2:D11="رسمی")*NOT(C2:C11="اداری مالی"),"موردی یافت نشد")

نکات کاربردی ترکیب چند شرط در FILTER
- AND همیشه با علامت ضرب (*) و OR همیشه با علامت جمع (+) نوشته می شود؛ این دو علامت را با هم اشتباه نگیرید.
- هر شرط را حتما داخل پرانتز جداگانه بگذارید، مخصوصا وقتی OR و AND با هم ترکیب می شوند؛ پرانتزبندی غلط جواب را عوض می کند.
- آرگومان سوم FILTER (if_empty) را همیشه پر کنید؛ اگر هیچ ردیفی با ترکیب شرط ها مطابقت نداشته باشد، بدون این آرگومان خطای #CALC! می گیرید.
- برای بیش از دو شرط هم همین قانون ادامه دارد؛ مثلا (شرط۱)*(شرط۲)*(شرط۳) یعنی هر سه شرط با هم AND شده اند.
- در نسخه های فارسی و منطقه ای اکسل، جداکننده آرگومان ها به جای ویرگول معمولا نقطه ویرگول ( ; ) است.
📄 دانلود فایل اکسل نمونه «فیلتر چندشرطی پرسنل» — شامل فیلتر AND دوشرطی، ترکیب OR و AND، و فیلتر با NOT روی همان لیست پرسنل بیمارستان.
منبع : سایت حسابداری بیمارستان
کانال تلگرام @hospitalaccounting