فهرست مطالب
آموزش نحوه استفاده از تابع SORT برای مرتبسازی پویا آرایههای داده را نشان میدهد. فرمولی برای مرتبسازی بر اساس حروف الفبا در اکسل، مرتب کردن اعداد به ترتیب صعودی یا نزولی، مرتبسازی بر اساس ستونهای متعدد و موارد دیگر خواهید آموخت.
قابلیت مرتب سازی مدت زیادی است که وجود داشته است. اما با معرفی آرایههای پویا در اکسل 365، یک راه شگفتانگیز ساده برای مرتبسازی فرمولها ظاهر شد. زیبایی این روش این است که نتایج به طور خودکار با تغییر داده های منبع به روز می شوند.
عملکرد Excel SORT
عملکرد SORT در اکسل محتویات یک آرایه یا مرتب می کند. محدوده بر اساس ستون یا ردیف، به ترتیب صعودی یا نزولی.
SORT به گروه توابع آرایه پویا تعلق دارد. نتیجه یک آرایه پویا است که بسته به شکل آرایه منبع به طور خودکار به سلولهای همسایه به صورت عمودی یا افقی میریزد.
سینتکس تابع SORT به شرح زیر است:
SORT(آرایه، [sort_index ]، [ترتیب_مرتب]، [by_col])Where:
Array (الزامی) - آرایه ای از مقادیر یا محدوده ای از سلول ها برای مرتب سازی است. اینها می توانند هر مقداری از جمله متن، اعداد، تاریخ، زمان، و غیره باشند.
Sort_index (اختیاری) - یک عدد صحیح که نشان می دهد کدام ستون یا ردیف باید مرتب شود. اگر حذف شود، شاخص پیشفرض 1 استفاده میشود.
Sort_order (اختیاری) - ترتیب مرتبسازی را تعریف میکند:
- 1 یا حذف شده (پیشفرض) - ترتیب صعودی ، یعنی ازفرمول ها (فایل xlsx.) کوچکترین به بزرگترین
- -1 - ترتیب نزولی، یعنی از بزرگترین به کوچکترین
By_col (اختیاری) - یک مقدار منطقی که جهت مرتب سازی را نشان می دهد:
- FALSE یا حذف شده (پیش فرض) - مرتب سازی بر اساس ردیف. شما بیشتر اوقات از این گزینه استفاده خواهید کرد.
- TRUE - مرتب سازی بر اساس ستون. اگر داده های شما به صورت افقی در ستون هایی مانند این مثال سازماندهی شده اند از این گزینه استفاده کنید.
عملکرد Excel SORT - نکات و یادداشت ها
SORT یک تابع آرایه پویا جدید است و به همین ترتیب دارای چند ویژگی که باید از آنها آگاه باشید:
- در حال حاضر تابع SORT فقط در مایکروسافت 365 و اکسل 2021 موجود است. اکسل 2019 و اکسل 2016 از فرمول های آرایه پویا پشتیبانی نمی کنند، بنابراین تابع SORT در این نسخه ها موجود نیست.
- اگر آرایه ای که با فرمول SORT برگردانده می شود، نتیجه نهایی باشد (یعنی به تابع دیگری منتقل نشود)، اکسل به صورت پویا یک محدوده با اندازه مناسب ایجاد می کند و آن را با مقادیر مرتب شده پر می کند. بنابراین، مطمئن شوید که همیشه سلولهای خالی کافی در پایین یا/یا سمت راست سلولی که فرمول را وارد میکنید دارید، در غیر این صورت یک خطای #SPILL رخ میدهد.
- نتایج بهصورت پویا با تغییر دادههای منبع بهروزرسانی میشوند. با این حال، آرایه ارائه شده به فرمول به طور خودکار گسترش نمی یابد و ورودی های جدیدی را که خارج از آرایه ارجاع شده اضافه می شوند، شامل نمی شود. برای گنجاندن چنین مواردی، باید مرجع آرایه را در فرمول خود به روز کنید یاهمانطور که در این مثال نشان داده شده است، محدوده منبع را به یک جدول تبدیل کنید یا یک محدوده با نام پویا ایجاد کنید.
فرمول SORT پایه اکسل
این مثال یک فرمول اساسی برای مرتب سازی داده ها در اکسل را نشان می دهد. به ترتیب صعودی و نزولی.
فرض کنید داده های شما بر اساس حروف الفبا مرتب شده اند همانطور که در تصویر زیر نشان داده شده است. شما به دنبال مرتبسازی اعداد در ستون B بدون شکستن یا مخلوط کردن دادهها هستید.
فرمول مرتبسازی به ترتیب صعودی
برای مرتبسازی مقادیر در ستون B از کوچکترین به بزرگترین، فرمول مورد استفاده در اینجا آمده است:
=SORT(A2:B8, 2, 1)
جایی:
- A2:B8 آرایه منبع است
- 2 شماره ستونی است که باید بر اساس مرتب سازی شود
- 1 ترتیب مرتب سازی صعودی است
از آنجایی که داده های ما در ردیف ها سازماندهی شده اند، آخرین آرگومان را می توان به صورت پیش فرض نادرست حذف کرد - مرتب سازی بر اساس ردیف.
فقط فرمول را وارد کنید هر سلول خالی (در مورد ما D2)، Enter را فشار دهید، و نتایج به طور خودکار به D2:E8 ریخته می شود.
فرمول برای مرتب سازی به ترتیب نزولی
برای مرتب کردن داده ها به صورت نزولی، یعنی از بزرگ به کوچکترین، آرگومان sort_order را بر روی -1 قرار دهید:
=SORT(A2:B8, 2, -1)
فرمول را در سلول بالا سمت چپ وارد کنید. محدوده مقصد و این نتیجه را دریافت خواهید کرد:
به روشی مشابه، می توانید مقادیر متن را به ترتیب حروف الفبا از A به Z یا از Z به A مرتب کنید.
نحوه مرتب سازی داده ها در اکسل با استفاده از f ormula
مثال های زیر چند کاربرد معمولی از تابع SORT در اکسل را نشان می دهدو چند مورد غیر پیش پا افتاده.
Excel SORT by column
وقتی داده ها را در اکسل مرتب می کنید، در بیشتر موارد ترتیب ردیف ها را تغییر می دهید. اما زمانی که دادههای شما بهصورت افقی با ردیفهایی حاوی برچسبها و ستونهای حاوی سوابق سازماندهی میشوند، ممکن است لازم باشد به جای از بالا به پایین، از چپ به راست مرتبسازی کنید.
برای مرتبسازی بر اساس ستون در اکسل، <1 را تنظیم کنید. آرگومان>by_col به TRUE. در این مورد، sort_index نشان دهنده یک سطر خواهد بود، نه یک ستون.
به عنوان مثال، برای مرتب کردن داده های زیر بر اساس Qty. از بالاترین به پایین ترین، از این فرمول استفاده کنید:
=SORT(B1:H2, 2, 1, TRUE)
جایی:
- B1:H2 منبع داده برای مرتب سازی است
- 2 شاخص مرتب سازی، از آنجایی که ما در حال مرتب سازی اعداد در ردیف دوم هستیم
- -1 ترتیب مرتب سازی نزولی را نشان می دهد
- TRUE به معنای مرتب سازی ستون ها، نه ردیف ها است
<. 14>
مرتب سازی بر اساس چندین ستون به ترتیب مختلف (مرتب سازی چند سطحی)
هنگام کار با مدل های داده پیچیده، ممکن است اغلب به مرتب سازی چند سطحی نیاز داشته باشید. آیا با فرمول می توان این کار را انجام داد؟ بله، به راحتی! کاری که شما انجام می دهید این است که ثابت های آرایه ای را برای آرگومان های sort_index و sort_order ارائه دهید.
به عنوان مثال، ابتدا داده های زیر را بر اساس Region مرتب کنید. (ستون A) از A به Z و سپس توسط Qty . (ستون C) از کوچکترین به بزرگترین، آرگومان های زیر را تنظیم کنید:
- آرایه داده های موجود در A2:C13 است.
- Sort_index ثابت آرایه {1,3} است، زیرا ابتدا بر اساس Region (1stستون)، و سپس توسط Qty . (ستون سوم).
- Sort_order ثابت آرایه {1,-1} است، زیرا ستون 1 باید به ترتیب صعودی و ستون 3 به ترتیب نزولی مرتب شوند.
- By_col حذف شده است زیرا ما ردیفها را مرتب میکنیم، که پیشفرض است.
با کنار هم قرار دادن آرگومانها، این فرمول را دریافت میکنیم:
=SORT(A2:C13, {1,3}, {1,-1})
و کاملاً کار می کند! مقادیر متن در ستون اول بر اساس حروف الفبا و اعداد در ستون سوم از بزرگترین به کوچکترین مرتب شده اند:
مرتب سازی و فیلتر کردن در Excel
در صورت وجود وقتی به دنبال فیلتر کردن داده ها با برخی معیارها و مرتب کردن خروجی ها هستید، از توابع SORT و FILTER با هم استفاده کنید:
SORT(FILTER(آرایه، محدوده_معیار= معیار) , [sort_index], [ sort_order], [by_col])عملکرد FILTER آرایه ای از مقادیر را بر اساس معیارهایی که شما تعریف می کنید دریافت می کند و آن آرایه را به اولین آرگومان SORT منتقل می کند.
بهترین چیز در مورد این فرمول این است که نتایج را نیز به عنوان یک محدوده نشت پویا خارج می کند، بدون اینکه لازم باشد Ctrl + Shift + Enter را فشار دهید یا حدس بزنید که در چند سلول باید آن را کپی کنید. طبق معمول، فرمولی را در بالاترین سلول تایپ میکنید و کلید Enter را فشار میدهید.
بهعنوان مثال، میخواهیم مواردی را با مقدار مساوی یا بزرگتر از 30 (>=30) از داده ها را در A2:B9 منبع کنید و نتایج را به ترتیب صعودی مرتب کنید.
برای این، ابتدا شرط را تنظیم کردیم، مثلاً درسلول E2 همانطور که در تصویر زیر نشان داده شده است. و سپس، فرمول Excel SORT خود را به این صورت بسازید:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
به غیر از آرایه تولید شده توسط تابع FILTER، ما فقط sort_index<2 را مشخص می کنیم> آرگومان (ستون 2). دو آرگومان باقی مانده حذف می شوند زیرا پیش فرض ها دقیقاً همانطور که نیاز داریم کار می کنند (مرتب سازی صعودی، بر اساس ردیف).
N بزرگترین یا کوچکترین مقدار را دریافت کنید و نتایج را مرتب کنید
هنگام تجزیه و تحلیل حجم عظیمی از اطلاعات، اغلب نیاز به استخراج تعداد معینی از مقادیر بالا وجود دارد. شاید نه فقط استخراج، بلکه آنها را به ترتیب دلخواه مرتب کنید. و در حالت ایده آل، انتخاب کنید که کدام ستون در نتایج گنجانده شود. مشکل به نظر می رسد؟ نه با توابع آرایه پویا جدید!
در اینجا یک فرمول عمومی وجود دارد:
INDEX(SORT(…)، SEQUENCE( n)، { column1_to_return, column2_to_return، …})جایی که n تعداد مقادیری است که میخواهید برگردانید.
از مجموعه دادههای زیر، فرض کنید میخواهید دریافت کنید یک لیست 3 برتر بر اساس اعداد در ستون C.
برای انجام این کار، ابتدا آرایه A2:C13 را بر اساس ستون سوم به ترتیب نزولی مرتب کنید:
SORT(A2:C13, 3, -1)
و سپس، فرمول بالا را در آرگومان اول ( آرایه ) تابع INDEX قرار دهید تا آرایه از بالاترین به کوچکترین مرتب شده باشد.
برای دومین ( row_num) آرگومان ) که نشان می دهد چند ردیف باید برگردانده شود، اعداد ترتیبی مورد نیاز را با استفاده از تابع SEQUENCE ایجاد می کند. مانندما به 3 مقدار بالا نیاز داریم، ما از SEQUENCE(3) استفاده می کنیم، که مانند ارائه ثابت آرایه عمودی {1;2;3} به طور مستقیم در فرمول است.
برای سومین ( col_num ) آرگومان، که تعیین می کند چند ستون باید برگردانده شود، اعداد ستون ها را به شکل یک آرایه ثابت افقی ارائه می کند. ما می خواهیم ستون های B و C را برگردانیم، بنابراین از آرایه {2،3} استفاده می کنیم.
در نهایت، فرمول زیر را دریافت می کنیم:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
و تولید می کند دقیقاً نتایجی که می خواهیم:
برای برگرداندن 3 مقدار پایین ، به سادگی داده های اصلی را از کوچکترین به بزرگترین مرتب کنید. برای این، آرگومان sort_order را از -1 به 1 تغییر دهید:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
یک مقدار مرتب شده را در یک موقعیت خاص برگردانید
از زاویه دیگری نگاه کنید، اگر بخواهید فقط یک موقعیت مرتب سازی خاص را برگردانید چه؟ بگویید، فقط رکورد 1، فقط 2، یا فقط 3 از لیست مرتب شده؟ برای انجام آن، از نسخه ساده شده فرمول INDEX SORT که در بالا توضیح داده شد استفاده کنید:
INDEX(SORT(...)، n، { column1_to_return، column2_to_return، …})جایی که n موقعیت مورد علاقه است.
به عنوان مثال، برای به دست آوردن یک موقعیت خاص از بالا (یعنی از داده های مرتب شده به صورت نزولی)، از این فرمول استفاده کنید. :
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
برای بدست آوردن یک موقعیت خاص از پایین (یعنی از داده های مرتب شده به صورت صعودی)، از این مورد استفاده کنید:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Where A2: C13 داده منبع است، F1 موقعیت از بالا، I1 موقعیت از استپایین، و {2،3} ستون هایی هستند که باید برگردانده شوند.
از جدول اکسل برای دریافت آرایه مرتب سازی برای گسترش خودکار استفاده کنید
همانطور که قبلاً می دانید ، آرایه مرتب شده به طور خودکار با ایجاد هر گونه تغییر در داده های اصلی به روز می شود. این رفتار استاندارد همه توابع آرایه پویا از جمله SORT است. با این حال، هنگامی که ورودی های جدید را خارج از آرایه ارجاع شده اضافه می کنید، به طور خودکار در یک فرمول گنجانده نمی شوند. اگر میخواهید فرمول شما به چنین تغییراتی پاسخ دهد، محدوده منبع را به یک جدول اکسل کاملاً کاربردی تبدیل کنید و از مراجع ساختاری در فرمول خود استفاده کنید.
برای اینکه ببینید در عمل چگونه کار میکند، لطفاً موارد زیر را در نظر بگیرید. به عنوان مثال.
فرض کنید از فرمول Excel SORT زیر برای مرتب کردن مقادیر در محدوده A2:B8 به ترتیب حروف الفبا استفاده می کنید:
=SORT(A2:B8, 1, 1)
سپس، یک ورودی جدید را وارد می کنید. ردیف 9… و از اینکه می بینیم ورودی جدید اضافه شده از محدوده نشت خارج شده است ناامید شده ایم:
اکنون، محدوده منبع را به جدول تبدیل کنید. برای این، به سادگی محدوده خود را از جمله سرصفحه های ستون (A1:B8) انتخاب کنید و Ctrl + T را فشار دهید. هنگام ساخت فرمول خود، محدوده منبع را با استفاده از ماوس انتخاب کنید، و نام جدول به طور خودکار در فرمول درج می شود (به این یک مرجع ساختاریافته می گویند):
=SORT(Table1, 1, 1)
هنگامی که شما تایپ می کنید ورودی جدید درست زیر آخرین ردیف، جدول به طور خودکار گسترش مییابد و دادههای جدید در محدوده نشت قرار میگیرنداز فرمول SORT:
عملکرد Excel SORT کار نمی کند
اگر فرمول SORT شما منجر به خطا می شود، به احتمال زیاد به دلایل زیر است.
خطای #NAME: نسخه قدیمی تر اکسل
SORT یک تابع جدید است و فقط در اکسل 365 و اکسل 2021 کار می کند. در نسخه های قدیمی که این تابع پشتیبانی نمی شود، یک #NAME؟ خطا رخ می دهد.
#خطای SPILL: چیزی محدوده نشت را مسدود می کند
اگر یک یا چند سلول در محدوده نشت کاملاً خالی یا ادغام نشده باشند، یک #SPILL! خطا نمایش داده می شود. برای رفع آن، فقط انسداد را برطرف کنید. برای اطلاعات بیشتر، لطفا به Excel #SPILL مراجعه کنید! خطا - معنی آن و نحوه رفع آن.
خطای #VALUE: آرگومان های نامعتبر
هر زمان که با یک #VALUE مواجه شدید! خطا، آرگومان های sort_index و sort_order را بررسی کنید. Sort_index نباید از تعداد ستون های array و sort_order تجاوز کند. 2> باید 1 (صعودی) یا -1 (نزولی) باشد.
خطای #REF: کتاب منبع بسته است
از آنجایی که آرایه های پویا پشتیبانی محدودی از مراجع بین کتاب های کاری دارند، تابع SORT نیاز به باز بودن هر دو فایل دارد. اگر کتاب منبع بسته باشد، یک فرمول یک #REF پرتاب می کند! خطا برای رفع آن، فقط فایل ارجاع شده را باز کنید.
به این ترتیب می توان داده ها را در اکسل با استفاده از فرمول مرتب کرد. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینیم!
کتاب کار برای دانلود تمرین کنید
مرتب سازی در اکسل با