فهرست مطالب
این آموزش تعدادی از مثالهای فرمول «Excel if حاوی» را ارائه میکند که نشان میدهد اگر سلول هدف حاوی مقدار لازم باشد، چگونه چیزی را در ستون دیگری برگردانید، چگونه با تطابق جزئی جستجو کنید و چندین معیار را با OR به عنوان آزمایش کنید. و همچنین منطق AND.
یکی از متداول ترین وظایف در اکسل بررسی اینکه آیا یک سلول دارای مقدار مورد علاقه است یا خیر. چه نوع ارزشی می تواند باشد؟ فقط هر متن یا عدد، متن خاص، یا اصلاً هر مقدار (نه سلول خالی).
تغییرهای مختلفی از فرمول "اگر سلول حاوی" در اکسل وجود دارد، بسته به اینکه دقیقاً چه مقادیری را می خواهید پیدا کنید. به طور کلی، از تابع IF برای انجام یک آزمایش منطقی استفاده میکنید و زمانی که شرط برآورده شد (سلول حاوی) یک مقدار و/یا زمانی که شرط برآورده نشد (سلول حاوی سلول نیست) یک مقدار را برمیگردانید. مثالهای زیر متداولترین سناریوها را پوشش میدهند.
اگر سلول حاوی مقداری است، پس
برای شروع، بیایید ببینیم که چگونه سلولهایی را پیدا کنیم که حاوی هر چیزی هستند: متن، شماره یا تاریخ برای این کار، میخواهیم از یک فرمول IF ساده استفاده کنیم که سلولهای غیر خالی را بررسی میکند.
IF( سلول"، value_to_return، "")برای به عنوان مثال، اگر سلول ستون A در همان سطر حاوی مقداری باشد، برای برگرداندن "خالی نیست" در ستون B، فرمول زیر را در B2 وارد کنید و سپس روی مربع سبز کوچک در گوشه سمت راست پایین دوبار کلیک کنید تا فرمول را به پایین کپی کنید. راستون:
=IF(A2"", "Not blank", "")
نتیجه مشابه این خواهد بود:
اگر سلول حاوی متن باشد،
اگر میخواهید فقط سلولهایی با مقادیر متنی که اعداد و تاریخ را نادیده میگیرند پیدا کنید، از IF در ترکیب با تابع ISTEXT استفاده کنید. در اینجا فرمول عمومی برای برگرداندن مقداری مقدار در سلول دیگر است اگر سلول هدف حاوی هر متنی :
IF(ISTEXT( سلول)، value_to_return، " ")فرض کنید، اگر یک سلول در ستون A حاوی متن باشد، می خواهید کلمه "بله" را در ستون B وارد کنید. برای انجام آن، فرمول زیر را در B2 قرار دهید:
=IF(ISTEXT(A2), "Yes", "")
اگر سلول دارای عدد باشد،
به روشی مشابه ، می توانید سلول ها را با مقادیر عددی (اعداد و تاریخ) شناسایی کنید. برای این کار، از تابع IF همراه با ISNUMBER استفاده کنید:
IF(ISNUMBER( سلول)، value_to_return، "")فرمول زیر "بله" را در ستون برمیگرداند B اگر سلول مربوطه در ستون A حاوی هر عددی باشد:
=IF(ISNUMBER(A2), "Yes", "")
اگر سلول حاوی متن خاصی باشد
یافتن سلول های حاوی متن خاص (یا اعداد یا تاریخ) آسان است. شما یک فرمول IF معمولی می نویسید که بررسی می کند آیا یک سلول هدف حاوی متن مورد نظر است یا خیر، و متنی را تایپ کنید تا در آرگومان value_if_true برگردید.
IF( cell=" text، value_to_return، "")به عنوان مثال، برای اینکه بفهمید سلول A2 حاوی "apples" است یا خیر، از این فرمول استفاده کنید:
=IF(A2="apples", "Yes", "")
اگر سلول حاوی خاصی نباشدtext
اگر به دنبال نتیجه مخالف هستید، یعنی مقداری را به ستون دیگری برگردانید اگر سلول هدف حاوی متن مشخص شده ("apples") نباشد، یکی از موارد زیر را انجام دهید.
یک رشته خالی ("") در آرگومان value_if_true و متنی را برای بازگشت در آرگومان value_if_false وارد کنید:
=IF(A2="apples", "", "Not apples")
یا عملگر "نه برابر با" را در logical_test و متن را برای بازگشت در value_if_true:
=IF(A2"apples", "Not apples", "")
در هر صورت، فرمول تولید خواهد کرد این نتیجه:
اگر سلول حاوی متن است: فرمول حساس به حروف کوچک و بزرگ
برای اینکه فرمول خود را مجبور کنید بین حروف بزرگ و کوچک تمایز قائل شود، از تابع EXACT استفاده کنید که بررسی می کند که آیا دو رشته متن دقیقاً برابر هستند، از جمله حروف کوچک:
=IF(EXACT(A2,"APPLES"), "Yes", "")
شما همچنین می توانید رشته متن مدل را در برخی سلول ها وارد کنید (مثلاً در C1)، مرجع سلول را با علامت $ ($C$1) ثابت کنید، و سلول هدف را با آن سلول مقایسه کنید:
=IF(EXACT(A2,$C$1), "Yes", "")
اگر سلول شامل رشته متن خاصی است (تطابق جزئی)
ما کارهای بی اهمیت را تمام کرده ایم و به کارهای چالش برانگیزتر و جالب تر می رویم :) در این مثال، سه تابع مختلف نیاز دارد تا بفهمیم آیا یک کاراکتر یا زیر رشته بخشی از سلول است یا خیر. محتویات:
IF(ISNUMBER(SEARCH(" متن"، سلول))، ارزش_برگشت"")کار از داخل به بیرون ، این فرمول کاری است که انجام می دهد:
- Theتابع SEARCH یک رشته متنی را جستجو میکند و اگر رشته پیدا شود، موقعیت اولین کاراکتر یعنی #VALUE را برمیگرداند! در غیر این صورت خطا می شود.
- عملکرد ISNUMBER بررسی می کند که SEARCH موفق بوده یا ناموفق. اگر SEARCH هر عددی را برگرداند، ISNUMBER TRUE را برمیگرداند. اگر SEARCH منجر به خطا شود، ISNUMBER FALSE را برمی گرداند.
- در نهایت، تابع IF مقدار مشخص شده را برای سلول هایی که دارای TRUE در تست منطقی هستند، و در غیر این صورت یک رشته خالی ("") را برمی گرداند.
و اکنون، بیایید ببینیم که چگونه این فرمول عمومی در کاربرگ های واقعی کار می کند.
اگر سلول حاوی متن خاصی است، مقداری را در سلول دیگری قرار دهید
فرض کنید فهرستی از سفارشات در ستون A و شما می خواهید سفارشات با یک شناسه خاص پیدا کنید، بگویید "A-". کار را می توان با این فرمول انجام داد:
=IF(ISNUMBER(SEARCH("A-",A2)),"Valid","")
به جای اینکه رشته را در فرمول کدگذاری کنید، می توانید آن را در یک سلول جداگانه (E1) وارد کنید، مرجع آن سلول در فرمول شما :
=IF(ISNUMBER(SEARCH($E$1,A2)),"Valid","")
برای اینکه فرمول به درستی کار کند، مطمئن شوید که آدرس سلول حاوی رشته را با علامت $ (مرجع سلول مطلق) قفل کنید.
اگر سلول حاوی متن خاصی است، آن را در ستون دیگری کپی کنید
اگر می خواهید محتویات سلول های معتبر را در جای دیگری کپی کنید، به سادگی آدرس سلول ارزیابی شده (A2) را وارد کنید. در آرگومان value_if_true :
=IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")
عکس صفحه زیر نتایج را نشان می دهد:
اگرسلول حاوی متن خاصی است: فرمول حساس به بزرگی و کوچکی
در هر دو مثال بالا، فرمول ها به حروف بزرگ و کوچک حساس نیستند. در شرایطی که با دادههای حساس به حروف بزرگ کار میکنید، از تابع FIND به جای SEARCH برای تشخیص حروف کوچک استفاده کنید.
به عنوان مثال، فرمول زیر فقط ترتیبهایی را با حروف بزرگ "A-" و نادیده گرفتن حروف کوچک شناسایی میکند. a-".
=IF(ISNUMBER(FIND("A-",A2)),"Valid","")
اگر سلول حاوی یکی از بسیاری از رشته های متنی (OR منطق) باشد
برای شناسایی سلول های حاوی حداقل یکی از بسیاری از مواردی که به دنبال آن هستید، از یکی از فرمول های زیر استفاده کنید.
فرمول جستجوی IF OR ISNUMBER
بدیهی ترین رویکرد بررسی هر زیر رشته به صورت جداگانه و داشتن تابع OR است. در آزمایش منطقی فرمول IF اگر حداقل یک رشته فرعی یافت شد، TRUE را برگردانید:
IF(OR(ISNUMBER(SEARCH(" string1"، cell))، ISNUMBER (SEARCH(" string2", cell))), value_to_return, "")فرض کنید شما لیستی از SKUها در ستون A دارید و شما می خواهید آنهایی را پیدا کنید که شامل "لباس" یا "دامن" هستند. شما می توانید با استفاده از این فرمول این کار را انجام دهید:
=IF(OR(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2))),"Valid ","")
فرمول برای چند مورد بسیار خوب کار می کند، اما مطمئناً این روشی نیست اگر می خواهید چیزهای زیادی را بررسی کنید، بروید. در این مورد، روش بهتر استفاده از تابع SUMPRODUCT همانطور که در مثال بعدی نشان داده شده است.
SUMPRODUCT ISNUMBER SEARCH فرمول
اگر شما هستیداگر با چندین رشته متن سروکار دارید، جستجوی هر رشته به صورت جداگانه فرمول شما را طولانی و خواندن آن را دشوار می کند. یک راه حل زیباتر جاسازی ترکیب ISNUMBER SEARCH در تابع SUMPRODUCT است و ببینید آیا نتیجه بزرگتر از صفر است:
SUMPRODUCT(--ISNUMBER(SEARCH( رشته ها, سلول)))>0به عنوان مثال، برای اینکه بفهمید آیا A2 حاوی هر یک از کلمات ورودی در سلول های D2:D4 است، از این فرمول استفاده کنید:
=SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0
به طور متناوب، می توانید یک محدوده نامگذاری شده حاوی رشته هایی برای جستجو ایجاد کنید، یا کلمات را مستقیماً در فرمول ارائه دهید:
=SUMPRODUCT(--ISNUMBER(SEARCH({"dress","skirt","jeans"},A2)))>0
در هر صورت، نتیجه مشابه این خواهد بود:
برای کاربرپسندتر کردن خروجی، می توانید فرمول بالا را در تابع IF قرار دهید و متن خود را به جای مقادیر TRUE/FALSE برگردانید:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")
این فرمول چگونه کار می کند
در اصل، همانطور که در مثال قبلی توضیح داده شد، از ISNUMBER همراه با SEARCH استفاده می کنید. در این حالت، نتایج جستجو در قالب آرایه ای مانند {TRUE;FALSE;FALSE} نمایش داده می شوند. اگر یک سلول حداقل یکی از زیررشته های مشخص شده را داشته باشد، در آرایه TRUE وجود خواهد داشت. عملگر دوگانه یکنواخت (--) مقادیر TRUE / FALSE را به ترتیب به 1 و 0 وادار می کند و آرایه ای مانند {1;0;0} را تحویل می دهد. در نهایت، تابع SUMPRODUCT اعداد را جمع میکند و سلولهایی را انتخاب میکنیم که در آن نتیجه بزرگتر از صفر است.
اگرسلول حاوی چندین رشته (AND منطق) است
در شرایطی که میخواهید سلولهای حاوی تمام رشتههای متن مشخص شده را پیدا کنید، از ترکیب ISNUMBER SEARCH که قبلاً آشنا بودید همراه با IF AND:
IF(AND(ISNUMBER) استفاده کنید. (SEARCH(" رشته1"، سلول))، ISNUMBER(SEARCH(" رشته2"، سلول)))، value_to_return,"")به عنوان مثال، می توانید SKUهایی را که حاوی "dress" و "آبی" هستند با این فرمول پیدا کنید:
=IF(AND(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("blue",A2))),"Valid ","")
یا، می توانید تایپ کنید رشته ها در سلول های جداگانه و ارجاع به آن سلول ها در فرمول شما:
=IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2))),"Valid ","")
به عنوان یک راه حل جایگزین، می توانید وقوع هر رشته را بشمارید و بررسی کنید اگر هر شمارش بزرگتر از صفر باشد:
=IF(AND(COUNTIF(A2,"*dress*")>0,COUNTIF(A2,"*blue*")>0),"Valid","")
نتیجه دقیقاً مانند تصویر بالا خواهد بود.
نحوه برگرداندن نتایج مختلف بر اساس مقدار سلول
در صورتی که میخواهید هر سلول در ستون هدف را با لیست دیگری از موارد مقایسه کنید و مقدار متفاوتی را برای هر تطابق برگردانید، از یکی از روشهای زیر استفاده کنید.
Nested IFs
منطق فرمول IF تو در تو به همین سادگی است: شما از یک تابع IF جداگانه برای آزمایش هر شرط استفاده می کنید و بسته به نتایج آن تست ها مقادیر متفاوتی را برمی گردانید.
IF( cell=" lookup_text1", " return_ text1", IF( cell=" lookup_text2، " return_ text2"، IF( cell=" lookup_text3"، " return_ متن3، "")))فرض کنید شما لیستی از موارد در ستون A دارید و می خواهید اختصارات آنها را در ستون B داشته باشید. برای انجام این کار، از فرمول زیر استفاده کنید:
=IF(A2="apple", "Ap", IF(A2="avocado", "Av", IF(A2="banana", "B", IF(A2="lemon", "L", ""))))
برای جزئیات کامل در مورد نحو و منطق IF تودرتو، لطفاً به Excel تودرتو IF - شرایط متعدد در یک فرمول مراجعه کنید.
فرمول جستجوی
اگر به دنبال فرمول بیشتری هستید فرمول فشرده و قابل درک بهتر، از تابع LOOKUP با مقادیر جستجو و برگشتی ارائه شده به عنوان ثابت آرایه عمودی استفاده کنید:
LOOKUP( cell, {" lookup_text1";" lookup_text2";" lookup_text3";…}، {" return_ text1";" return_ text2";" return_ text3";…})برای نتایج دقیق، مطمئن شوید که مقادیر جستجو را به ترتیب الفبایی فهرست کنید، از A تا Z.
=LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})
>> و بنابراین می تواند مطابقت های جزئی را شناسایی کند.
به عنوان مثال، اگر ستون A دارای چند مرتبه باشد از موز، میتوانید «*banana*» را جستجو کنید و علامت اختصاری («B») را برای همه سلولهای اینچنینی برگردانید:
=LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})
برای اطلاعات بیشتر، لطفاً فرمول جستجو را به عنوان جایگزینی برای IF های تودرتو ببینید.
فرمول Vlookup
هنگام کار با مجموعه داده های متغیر، ممکن است راحت تر باشد که فهرستی از موارد منطبق را به صورت جداگانه وارد کنید. سلول ها و بازیابی آنها با استفاده از فرمول Vlookup،به عنوان مثال:
=VLOOKUP(A2, $D$2:$E$5, 2,FALSE )
برای اطلاعات بیشتر، لطفاً آموزش VLOOKUP اکسل را برای مبتدیان ببینید.
به این ترتیب بررسی می کنید که آیا یک سلول وجود دارد یا خیر. حاوی هر مقدار یا متن خاصی در اکسل است. هفته آینده، ما به بررسی سلول If Excel حاوی فرمول ها ادامه خواهیم داد و نحوه شمارش یا جمع سلول های مربوطه، کپی یا حذف کل ردیف های حاوی آن سلول ها و موارد دیگر را یاد خواهیم گرفت. لطفاً با ما همراه باشید!
کتاب کار تمرینی
اکسل اگر سلول حاوی است - نمونههای فرمول (فایل xlsx.)