فهرست مطالب
اگر فهرستی از متن دارید و میخواهید سلولها را جستجو کنید و مقادیر را بر اساس فهرست برگردانید، باید یک فرمول بسازید زیرا اکسل راه سادهای برای انجام این کار ارائه نمیدهد. در این مقاله، من به این موضوع پرداخته ام و پنج فرمول مختلف برای انجام این عملیات ارائه کرده ام تا بتوانید بهترین فرمول را برای شرایط خود انتخاب کنید و اگر سلول حاوی متن خاصی از یک لیست باشد، مقدار را برگردانید.
دانلود کتاب تمرین
می توانید کتاب کاری را که در این مقاله استفاده کردم از دکمه زیر دانلود کنید و خودتان با آن تمرین کنید.
<. 3> اگر سلول حاوی متنی از List.xlsx باشد
مقدمه ای بر توابع استفاده شده در این مقاله
فرمول هایی که در اینجا استفاده کردم از توابع زیر استفاده می کنند:
- تابع COUNTIFS:
این تابع سلول هایی را می شمارد که با چندین معیار مطابقت دارند. نحو تابع COUNTIFS به شرح زیر است.
=COUNTIFS (range1, kriter1, [range2], [criteria2],…)
- محدوده 1 – اولین محدوده برای ارزیابی.
- معیار1 – معیاری که در محدوده اول استفاده می شود.
- محدوده 2 [اختیاری]: محدوده دوم، دقیقاً مانند محدوده 1 عمل می کند.
- criteria2 [اختیاری]: معیار مورد استفاده در محدوده 2 این تابع حداکثر 127 جفت محدوده و معیار را مجاز میکند.
- تابع TEXTJOIN:
این تابع متن را می پیونددمقادیر با جداکننده نحو تابع TEXTJOIN به شرح زیر است.
=TEXTJOIN (جداکننده، ignore_empty، text1، [text2]،…)
- جداکننده: جداکننده بین متنهایی که تابع میخواهد ترکیب کند.
- ignore_empty: این آرگومان مشخص میکند که آیا تابع مقدار خالی را نادیده میگیرد. سلول ها یا نه.
- text1: اولین مقدار متن (یا محدوده).
- text2 [اختیاری]: دومین مقدار متن (یا محدوده) .
- تابع MATCH:
این تابع موقعیت یک آیتم را در یک آرایه دریافت می کند. نحو تابع MATCH به شرح زیر است.
=MATCH (مقدار_lookup، آرایه_جستجو، [مطابق_نوع])
- lookup_value: مقدار مطابق با lookup_array .
- lookup_array: محدوده ای از سلول ها یا مرجع آرایه.
- مطابقت_نوع [اختیاری]: 1 = دقیق یا کوچکترین بعدی، 0 = تطابق دقیق، -1 = دقیق یا بزرگترین بعدی. به طور پیشفرض match_type=1.
- تابع INDEX:
این تابع مقادیر را در یک لیست یا جدول بر اساس مکان دریافت میکند. . نحو تابع INDEX به شرح زیر است.
=INDEX (آرایه، row_num، [col_num]، [area_num])
- آرایه: محدوده سلولها یا یک آرایه ثابت.
- row_num: موقعیت ردیف در مرجع.
- col_num [اختیاری] : موقعیت ستون در مرجع.
- prea_num [اختیاری]: محدودهدر مرجعی که باید استفاده شود.
- تابع IFERROR:
این تابع خطاها را به دام می اندازد و کنترل می کند. نحو تابع IFERROR به شرح زیر است.
=IFERROR (مقدار، مقدار_اگر_خطا)
- مقدار: مقدار، مرجع یا فرمولی برای بررسی خطا.
- value_if_error: مقداری که در صورت یافتن خطا باید برگردانده شود.
- تابع SEARCH:
این تابع مکان متن را در یک رشته دریافت می کند. نحو تابع SEARCH به شرح زیر است.
=SEARCH (find_text، inside_text، [start_num])
- find_text : این آرگومان مشخص می کند که کدام متن را پیدا کنید.
- within_text: این مشخص می کند که کجا متن را پیدا کنید.
- start_num [اختیاری]: با این کار، مشخص میکنید که از کدام موقعیت در رشته متن، موقعیت متن مشخص شده را بشمارید. اختیاری است و از سمت چپ به 1 پیشفرض میرسد.
5 فرمول برای برگرداندن مقدار در اکسل اگر سلولی حاوی متن خاصی از فهرست باشد
من سعی خواهم کرد ارائه کنم یک مثال واقعی در این مجموعه داده. برخی از نوشیدنی ها در اینجا نشان داده شده است. چیپس ، نوشیدنی های سرد و غلات سه دسته از نوشیدنی ها در این مجموعه داده هستند. در یک ستون به نام همه محصولات ، نام و دستههای نوشیدنیها با هم مرتبط میشوند. دو تا از این دسته ها، چیپس و سردنوشیدنیها نیز در ستون List قرار دارند. بر اساس ستون List ، خروجی مورد نظر در ستون دوم نمایش داده می شود.
1. ترکیب COUNTIF، IF و amp; اگر یک سلول حاوی متنی از یک لیست باشد، عملکردهای OR برای برگرداندن مقدار وجود دارد
اگر می خواهید مقدار کل سلول را پس از مطابقت برگردانید، این مفیدترین فرمول است.
در اینجا، من مقادیر سلولی محصولات را که با معیارهای ستون فهرست مطابقت داشت واکشی کردم و آنها را به محصول بر اساس آن فهرست ستون نشان دادم.
فرمول به شرح زیر است:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
تجزیه فرمول:
-
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
در اینجا، علامت ستاره ( * ) یک کاراکتر عام است. زیر رشته « Chips » و «Cold Drinks» را در Cell B5 جستجو کرد که "
Ruffles - Chips
"
است.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
عملکرد COUNTIF به ازای هر تطابق زیررشته، یک عدد برگرداند. همانطور که "
Chips
"
در Cell B5 یافت می شود، { 1:0 } را برمی گرداند.
-
=IF(OR({1;0}), B5, "")
اگر هر یک از آرگومان ها TRUE باشد، تابع OR مقدار TRUE را برمی گرداند. در این مورد، یک (1)= TRUE .
-
=IF(TRUE, "Ruffles - Chips", "")
به عنوان IF مقدار تابع TRUE است، اولین آرگومان که خروجی مورد نظر است را برمی گرداند.
نهایی خروجی : Ruffles – Chips
توجه:
در اینجا، من آن را نشان دادمسلولی که مطابقت دارد اما میتوانید با تغییر خروجی عملکردهای IF با خروجی دلخواه خود، هر خروجی را که میخواهید نشان دهید.
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),TRUE,FALSE)
بیشتر بخوانید: اگر سلول حاوی Word است، مقدار را در اکسل تعیین کنید (4 فرمول)
2. از ترکیب IF-OR با عملکرد جستجو برای برگرداندن مقدار با شرایط چندگانه استفاده کنید
در اینجا، من مقادیر سلولی محصولات را که با لیست مطابقت دارند واکشی کردم. معیارهای ستون و آنها را به ستون محصول بر اساس آن فهرست نشان داد.
فرمول به شرح زیر است:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
تفکیک فرمول:
-
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
تابع SEARCH مقادیر ستون List را در Cell B5 جستجو کرد. برای " Chips " 11 را برگرداند که موقعیت شروع رشته فرعی است. برای نوشیدنی های سرد ، یک خطا برگرداند.
-
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
عملکرد ISNUMBER تبدیل شد 11 به مقدار TRUE و خطا در مقدار FALSE .
-
=IF(OR(TRUE,FALSE)),B5,"")
<11 اگر هر یک از آرگومانها TRUE باشند، تابع OR مقدار TRUE را برمیگرداند. از آنجایی که آرگومان TRUE وجود دارد، مقدار TRUE را نیز در این مورد برمی گرداند. -
=IF(TRUE, "Ruffles - Chips","")
- در اینجا، سلولی را نشان دادهام که مطابقت دارد، اما شما میتوانید با تغییر هر خروجی را که میخواهید نشان دهید. IF خروجی را با خروجی دلخواه شما کار می کند.
- مزیت اصلی این فرمول این است که این فرمول آرایه ای نیست اما اگر سلول های زیادی در List دارید توصیه نمی شود زیرا باید هر سلول List را به صورت دستی وارد کنید.
- برای موقعیتهای حساس به حروف بزرگ، میتوانیم از فرمول زیر بر اساس تابع FIND به جای تابع SEARCH استفاده کنیم.
- چگونه سلول حاوی متن خاصی در اکسل باشد (6 روش)
- اگر سلول حاوی یک کلمه در متن باشد از VLOOKUP استفاده کنید Excel
- نحوه یافتن متن در محدوده Excel & مرجع سلول بازگشتی (3 روش)
-
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"),$E$5:$E$6,""))
-
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
-
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
-
TEXTJOIN(", ",TRUE,{"Chips";""})
-
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5,"*"&$E$5:$E$6&"*"),0)),"")
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
-
IFERROR(INDEX($E$5:$E$6,1),"")
-
IFERROR("Chips","")
از آنجایی که مقدار تابع IF TRUE است، اولین آرگومان که خروجی مورد نظر است را برمی گرداند.
خروجی نهایی: Ruffles –تراشهها
توجه:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
بیشتر بخوانید: Excel اگر سلول حاوی متن باشد سپس مقدار را برگردانید (8 روش آسان)
خوانش های مشابه:
3. اگر سلولی متنی از فهرست دارد از فرمول TEXTJOIN برای برگرداندن مقدار در یک سلول دیگر استفاده کنید
این فرمول زمانی مفید است که باید نشان دهید چه رشته یا رشته هایی از لیست مطابقت دارند. .
در اینجا، من مقادیر سلول را از ستون LIST که با محصول مطابقت داشتند واکشی کردم و آنها را به مقدار مطابق از List <نشان دادم. 4>ستون.
فرمول به شرح زیر است:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"), $E$5:$E$6,""))
فرمولتفکیک:
در اینجا، علامت ستاره ( * ) یک کاراکتر عام است. زیر رشته " Chips " و "Cold Drinks" را در سلول B5 جستجو کرد که رشته " Ruffles – Chips " است.
عملکرد COUNTIF برای هر تطابق رشته فرعی یک عدد برمی گرداند. همانطور که " Chips " در Cell B5 یافت میشود، { 1:0 } را برمیگرداند.
تابع IF فقط مقدار " Chips " را برگرداند زیرا فقط اولین مقدار آرگومان آن یک = True<4 بود>.
عملکرد TEXTJOIN در اینجا به عنوان تنها یک مقدار از <3 کاری انجام نداد>لیست مطابقت داشت. اگر مقادیر زیادی برای مطابقت وجود داشت، همه آنها را با کاما (،) بین آنها به عنوان جداکننده برمی گرداند.
خروجی نهایی: تراشه ها
بیشتر بخوانید: اگر سلول حاوی متن است، متنی را در سلول دیگری در اکسل اضافه کنید
4. اگر سلول حاوی متن خاصی است از فرمول INDEX MATCH برای برگرداندن مقدار استفاده کنید
این یک جایگزین برای فرمول TEXTJOIN است. این فرمول همچنین نشان میدهد که چه رشتهها یا رشتههایی از List مطابقت دارند.
در اینجا، من مقادیر سلولها را از ستون LIST واکشی کردم که در آنجا با <3 مطابقت داشتند>Product و آنها را به مقدار Matched از ستون List نشان داد.
فرمول به شرح زیر است:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6&"*"), 0)),"")
تفکیک فرمول:
در اینجا، علامت ستاره ( * ) یک کاراکتر عام زیر رشته " چیپس " و " نوشیدنیهای سرد " را در Cell B5 جستجو کرد که رشته " Ruffles – Chips " است.
عملکرد COUNTIF به ازای هر تطابق رشته فرعی، یک عدد برگرداند. همانطور که " Chips " در Cell B5 یافت میشود، { 1:0 } را برمیگرداند.
عملکرد MATCH یکی را برگرداند زیرا تنها یک مقدار " Chips " وجود دارد که مطابقت دارد.
عملکرد INDEX " Chips " را همانطور که در آرایه List بود برگرداند.
در اینجا، از تابع IFERROR برای رسیدگی به خطایی استفاده میشود که در صورت عدم تطابق رخ میدهد. .
خروجی نهایی: تراشه ها
توجه:
در اینجا، من سلولی را نشان داده ام که مطابقت دارد، اما شما می توانید نشان دهید با تغییر خروجی IF با خروجی دلخواه خود، هر خروجی را که می خواهید. سلول دیگری
5. با IF و TEXTJOIN تابع EXACT را اعمال کنید
این هم راه حل دیگری برای این مشکل در شرایط مختلف است. در اینجا، من مقدار سلول را از ستون List با یک عضو دریافت کردم. ما این مقدار را با محصول مطابقت دادیم و همه مقادیر مطابقت را در یک سلول نشان دادیم.
فرمول به شرح زیر است.به شرح زیر 4>
این قسمت بررسی می کند که چه مقادیری از Range C5:14 با Cell F5 مطابقت دارد و TRUE و <3 را برمی گرداند>FALSE .
-
IF(EXACT(C5:C14,$F$5),B5:B14,"")
این قسمت نام هایی را که برای آنها TRUE بدست می آوریم برمی گرداند.
-
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
در نهایت، این همه نام ها را با یک کاما بعد از هر نام به هم می پیوندد.
یادداشت های سریع
همه این فرمول های اینجا (به جز فرمول دوم) فرمول های آرایه ای هستند. به این معنی که برای وارد کردن این فرمول به جای فشار دادن دکمه Enter باید Ctrl+Shift+Enter را فشار دهید. اما اگر کاربر Office 365 هستید، می توانید فقط با فشار دادن Enter آنها را اعمال کنید.
نتیجه گیری
در این مقاله، فرمولهای مختلف را برای موارد مختلف محدود کردهام تا اگر سلولی حاوی متن خاصی از یک لیست باشد، مقداری را برگرداند. امیدوارم تونسته باشید راه حلی برای مشکلتون پیدا کنید. لطفا در صورت داشتن هر گونه پیشنهاد یا سوال نظر خود را بنویسید. علاوه بر این، میتوانید از وبلاگ ما برای مقالات بیشتر دیدن کنید.