ایجاد لیست کشویی مرتب شده به ترتیب حروف الفبا و بدون در نظر گرفتن موارد تکراری
سوال: چگونه یک لیست کشویی با داده های واحد (بدون در نظر گرفتن موارد تکراری لیست) و به ترتیب حروف الفبا درست کنیم؟
پاسخ: مرتب کردن داده ها به ترتیب حروف الفبا
یکی دیگر از آموزش اکسل پیشرفته مرتبی کردن داده ها به ترتیب حروف الفبا می باشد .
در ابتدا می بایست فرمول زیر را در سلول B2 بنویسیم:
چگونه یک فرمول آرایه ای بنویسیم:
- انتخاب سلول B2
- نوشتن فرمول آرایه ای فوق
- نگه داشتن همزمان کلیدهای Ctrl + Shift
- زدن کلید Enter
- رها کردن همه کلیدها
چگونه یک فرمول آرایه ای را کپی کنیم:
- انتخاب سلول B2
- کپی کردن (Ctrl + c)
- انتخاب کل محدوده ای که میخواهیم تا آنجا فرمول بسط داده شود- B3:B6
- جای گذاری کردن(Ctrl + v)
توضیح فرمول آرایه ای نوشته شده در سلول B2
=INDEX(List, MATCH(0, IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1), 0))
مرحله 1 – تبدیل متن به عدد
=INDEX(List, MATCH(0, IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1), 0))
COUNTIF(range,criteria)
این تابع تعداد اعداد سلولهای حاوی یک شرط را می شمارد.
COUNTIF(List, “>”&List)+1
می شود
COUNTIF({“DD”;”EE”;”FF”;”EE”;”GG”;”BB”;”FF”;”GG”;”DD”;”TT”;”FF”;”VV”;”VV”;”FF”}, “>”&{“DD”;”EE”;”FF”;”EE”;”GG”;”BB”;”FF”;”GG”;”DD”;”TT”;”FF”;”VV”;”VV”;”FF”})+1
می شود
{11;9;5;9;3;13;5;3;11;2;5;0;0;5}+1
می شود
{12;10;6;10;4;14;6;4;12;3;6;1;1;6}
مرحله 2 – شناسایی متن غیرتکراری در سلول قبلیِ سلول جاری
=INDEX(List, MATCH(0, IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1), 0))
COUNTIF(range,criteria)
این تابع تعداد اعداد سلولهای حاوی یک شرط را می شمارد.
NOT(COUNTIF($B$1:B1, List))
می شود
NOT(COUNTIF(“Unique list sorted alpabetically”, {“DD”;”EE”;”FF”;”EE”;”GG”;”BB”;”FF”;”GG”;”DD”;”TT”;”FF”;”VV”;”VV”;”FF”}))
می شود
NOT({0;0;0;0;0;0;0;0;0;0;0;0;0;0})
می شود
{1;1;1;1;1;1;1;1;1;1;1;1;1;1}
مرحله 3 – محاسبه بزرگترین عدد موجود در محدوده
=INDEX(List, MATCH(0, IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1), 0))
MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))
می شود
MAX({1;1;1;1;1;1;1;1;1;1;1;1;1;1}*({12;10;6;10;4;14;6;4;12;3;6;1;1;6})
و نتیجه آن 14 خواهد شد.
مرحله 4 – تبدیل بزرگترین عدد به یک مقدار منطقی
=INDEX(List, MATCH(0, IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1), 0))
IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1)
می شود
IF(14={12;10;6;10;4;14;6;4;12;3;6;1;1;6}, 0, 1)
و نتیجه محدوده زیر خواهد شد:
{1;1;1;1;1;0;1;1;1;1;1;1;1;1}
مرحله 5 – پیدا کردن موقعیت نسبی یک آیتم در یک محدوده
=INDEX(List, MATCH(0, IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1), 0))
MATCH(lookup_value;lookup_array; [match_type])
موقعیت نسبی یک آیتم در یک آرایه که منطبق با یک مقدار مشخص شده می باشد را بر میگرداند.
MATCH(0, IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1), 0)
می شود
MATCH(0, {1;1;1;1;1;0;1;1;1;1;1;1;1;1}, 0)
و نتیجه 6 خواهد شد.
مرحله 6 – پیدا کردن مقدار یک سلول در تقاطع یک ردیف و ستون خاص
INDEX(array,row_num,[column_num])
یک مقدار را در تقاطع سطر و ستون مشخص شده برمیگرداند
=INDEX(List, MATCH(0, IF(MAX(NOT(COUNTIF($B$1:B1, List))*(COUNTIF(List, “>”&List)+1))=(COUNTIF(List, “>”&List)+1), 0, 1), 0))
می شود
=INDEX(List, 6)
می شود
=INDEX({“DD”;”EE”;”FF”;”EE”;”GG”;”BB”;”FF”;”GG”;”DD”;”TT”;”FF”;”VV”;”VV”;”FF”}, 6)
و نتیجه عبارت BB می شود.
ایجاد یک نام داینامیک (متغیر) برای محدوده داده ها
- روی تب “Formulas” کلیک کنید
- روی تب “Name Manager” کلیک کنید
- روی List کلیک کنید
- فرمول زیر را در قسمت Refers to تایپ کنید
=OFFSET(Sheet1!$A$2, 0, 0, COUNT(IF(Sheet1!$A$2:$A$1000=””, “”, 1)), 1)
- روی کلید”Close” کلیک کنید
محدوده نامگذاری شده
List (dynamic)
What is named ranges?
چگونه یک لیست کشویی که قابلیت آپدیت بر اساس داده های یک ستون را دارد ایجاد کنیم.
- روی تب Data کلیک کنید
- روی کلید Data validation کلیک کنید
- روی گزینه “Data validation…” کلیک کنید
- در قسمت Allow گزینه List را مانند تصویر زیر انتخاب کنید.
- فرمول زیر را در قسمت Source تایپ کنید.
=OFFSET($B$2, 0, 0, COUNT(IF($B$2:$B$1000=””, “”, 1)), 1)
- روی گزینه OK کلیک کنید!
فایل نمونه را از آدرس زیر دانلود کنید
Create-a-drop-down-list-containing-only-unique.xls
(Excel 97-2003 Workbook *.xls)
توابع بکار رفته در این مقاله:
IF(logical_test;[value_if:true];[value_if_false])
INDEX(array,row_num,[column_num])
MATCH(lookup_value;lookup_array; [match_type])
COUNT(value1;[value2])
OFFSET(reference,rows,cols, [height],[width])
ترجمه و تلخیص: محمود بنی اسدی
منبع: Get Digital Help
درباره محمود بنی اسدی (مدیر سایت)
فارغ التحصیل کارشناسی ارشد حسابداری، ده سال سابقه تدریس اکسل در سطوح مختلف از قبیل فرمول نویسی، ابزارهای هوش تجاری، ترفندها و ... ، نویسنده شش مقاله در سطح ملی و ISI
نوشتههای بیشتر از محمود بنی اسدی (مدیر سایت)
دیدگاهتان را بنویسید