مرتب سازی خودکار جدول در اکسل

سلام عرض میکنم خدمت دوستان و دنبال کنندگان محترم سایت آموزشی اکسل لرن. امروز برای شما نحوه مرتب سازی خودکار جدول در اکسل را آماده نمودیم که امیدواریم این پست آموزشی نیز همانند سایر آموزش های سایت اکسل لرن مورد رضایت شما عزیزان و سروران گرامی قرار گیرد.

قبل از اینکه آموزش مرتب سازی خودکار جدول در اکسل را شروع کنیم شما می بایست با ابزار Sort  و Custom Sort آشنا شوید لذا پیشنهاد میکنیم پست آموزشی “آموزش ابزار Sort  و Custom Sort در اکسل” را مطالعه نمایید و سپس این پست آموزشی را دنبال کنید.

مرتب سازی خودکار جدول در اکسل

قطعا میدانید انجام کارهای اتوماتیک در اکسل بدون استفاده از زبان وی بی ای (ماکرونویسی) تا حدودی غیرممکن است لذا برای انجام این عمل قطعا باید دست به دامن کدهای ماکرونویسی در اکسل شویم. با ما همراه باشید.

با فرض شبه جدول زیر:

اموزش sort اتوماتیک در اکسل
اموزش sort اتوماتیک در اکسل

قصد داریم با درج مقدار در آخرین سلول هر رکورد(فیلد Price-قیمت واحد) مرتب سازی شبه جدول براساس فیلد نام(Name) بصورت صعودی صورت گیرد لذا می بایست با وارد شدن به محیط وی بی ای (کلیدمیانبر Alt + F11) همانند تصویر زیر برروی Worksheet شبه جدول راست کلیک و View Code کنیم.

مرتب سازی اتوماتیک در اکسل
مرتب سازی اتوماتیک در اکسل

حال در پنجره باز شده می بایست کدهای زیر را Copy و Paste نماییم:

خروجی عملیات فوق بصورت زیر خواهد بود:

مرتب سازی خودکار در اکسل
مرتب سازی خودکار در اکسل

توضیحات ماکروی مرتب سازی جدول بصورت اتوماتیک در اکسل:

در سطر اول یا به عبارتی قطعه کد On Error Resume Next اشاره به این موضوع دارد که در صورت بروز خطا، پیغامی با عنوان خطا نمایش داده نشود و فرآیند اجرای ماکرو بدون هیچ توقفی صورت گیرد. در سایر سطرهای ماکروی فوق اشاره شده است که اگر تغییراتی در ستون F که فیلد قیمت واحد(Price) می باشد لحاظ شد، مرتب سازی بصورت صعودی و براساس فیلد نام در کل شبه جدول صورت گیرد.

حال با تکمیل هریک از سلول های فیلد قیمت،  مشاهده خواهید نمود که مرتب سازی براساس فیلد Name بصورت اتوماتیک صورت خواهد گرفت.

در پایان امیدواریم پست آموزشی نحوه مرتب سازی اتوماتیک در اکسل مورد رضایت شما عزیزان قرار گرفته باشد لذا در صورت وجود هرگونه انتقاد و پیشنهاد میتوانید آن را در قسمت نظرات برای ما ارسال نمایید. موفق و پیروز باشید.

سایر مطالب پیشنهادی

گروه آموزشی اکسل لرن
فیسبوک توییتر گوگل + لینکداین تلگرام واتس اپ کلوب

امتیاز شما به مطلب

دوست داشتم: 96
دوست نداشتم: 90
میانگین امتیازات: 1.07

27 دیدگاه در “مرتب سازی خودکار جدول در اکسل

عرض سلام و خسته نباشید اگر مقادیر فرمول باشد کار نمیکندهمچنین اگر بخواهیم از زیاد به کم سورت بشه این کار هم صورت نمیگیرد با تشکر

سلام. خسته نباشید
کدی که دربالا برای مرتب سازی خودکار قراردادین را اعمال کردم. ولی هیچ اتفاقی تو اکسل نمی افته. علت چی می تونه باشه
لطفا راهنمایی کنید. با تشکر

سلام ارادتمندم
دقت نمایید که در صورت وارد شدن اطلاعات در ستون F جدول شما بروز می شود.
ستون رو در کد طبق نیاز خودتان ویرایش کنید (F:F)

سلام
یک جدول پایه با ۲۰۰ سطر و ۱۰ ستون دارم. شیتهای دیگر فایل اکسل با فرمول نویسی به این جدول پایه تکمیل شده اند
وقتی سورت جدول پایه تغییر کند و با level دیگری سورت شود اطلاعات مندرج در سایر شیتها به هم میریزد.
نحوه فرمول نویسی یا ارجاع به شیت اصلی را چگونه تعریف کنیم تا مشکل حل شود.

سلام و وقت بخیر
از ربات زیر لینک گروه اکسل را دریافت کنید و در آن با تصویر ارسال بفرمایید.
@Masoudhosseini_Bot

سلام. وقت بخیر. میخواستم سورت کردن اتومات رو بر اساس یک ستون در یک فایل انجام بدم ولی از روی آموزش متوجه نشدم.میشه فایل رو بفرستم و شما زحمتشو بکشید؟

سلام آقا مرتضی
کدهای مرتب سازی این است :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(“F:F”)) Is Nothing Then
Range(“F۱”).Sort Key۱:=Range(“F۲”), _
Order۱:=xlAscending, Header:=xlYes, _
OrderCustom:=۱, MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End Sub

کجاش رو متوجه نشدین ؟
هر ستونی که خواستین مرتب بشه باید اسمش رو جایگزین f:f کنید، مثلا ستون D می شود D:D

ممنونم از لطفتون
ولی وقتی کد رو کپی می کنم Errorهایی میده که بعضیاش مشخصه که مثلا بدلیل خونده نشدن فونت موجود در کدی هست که شما نوشتید؛ مثلا بجای اعداد 1 موجود در کد، علامت سوال میذاره. ولی خوب حتی وقتی اصلاح میکنمش بازم Error جدیدی میده(کدی که شما نوشتید شبیه کدی که در پایین گذاشتم Paste میشه). یه دلیل مهمش اینه که اطلاعاتم از اکسل پایینه و برای همینم خواسته بودم یک نفر لطف کنه و خودش برای ستون مدنظرم در فایل مدنظر زحمتشو بکشه. ولی مشکل اینه که نمیتونم فایل رو اینجا پیوست کنم و توی گروه تلگرامی هم کسی تا الان کمکی نکرده.
به هرحال متشکرم از شما

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(“F:F”)) Is Nothing Then
Range(“F?”).Sort Key?:=Range(“F?”), _
Order?:=xlAscending, Header:=xlYes, _
OrderCustom:=?, MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End Sub

سلام دستور اجرا میشه ولی فایل میبندم باز میکنم دوباره اطلاعات آپدیت میشه ولی دستور اجرا نمیشه مشکل از چیه میرم توی وی بی ای هم دستور پاک شده

سلام میشه به این کدتون قسمتی رو اضافه کنید که تو ستون A داده ها رو علاوه بر این که مرتب میکنه بر اساس اینکه با چه حرفی شروع میشن هم فیلتر کنه …. مثلا اونایی که با ض شروع میشن رو جدا و ابر اساس حروف سورت بندی کنه ….. اگر امکانش هست کدش رو در پاسخ قرار بدین با تشکر از لطف شما

عرض سلام دارم خدمت شما برادر گرامی از این که زمان گذاشتید و این برنامه رو تهیه کردین صمیمانه سپاسگزارم من هم مشکل عززیزان رو داشتم با کمی صبرو حوصله مشکل رفع شد.بااجازه من نکاتش رو مبگم بالای نود درصد جواب میده:
اول اینکه قبل از هرچیزی اون ارقام فارسی که تو دستور برنامه میبینین باتغییر فونت به انگلیسی پاک کنید و انگلیسی همون رقمو عینا بنویسین.
دوم اینکه قبل از ران کردن برنامه از بالای همون پنجره دستور یه زبانه بازشونده هست اونو بازکنین ببرین روحالت change.
قدم سوم که فک کنم اصلی ترین ایراد کار من تو اجرا بود جدول رو تو وسط مسطای صفحه اکسل وارد میکردم حتما حتما جدول رو به گوشه یه ورصفحه که شمارگان سطرشروع میشه ببرین یعنی سلول اولش حتماَََA1باشه
توقدم آخرهم ببینین داده هایی که میخواین متغیرترتیب چینی تون باشه کدوم ستون می افته کرکتر لاتین اون ستون رو تو برنامه جاگذاری کنین مثلا برای من افتاد رو B ودقت کنین این یه مورد رو مهندس شما کامل نفرمودین دوستان نگرفتند اون کرکتر رو علاوه بر جاگذاری به جای حرف Fتوقسمتی که نوشتهF:Fباید تو دوتاجای دیگه هم که نوشته “F1″و “F2″حتماجاگذاری کنین. مثلا من اینارو نوشتم:
B:B B1 B2
حواستون باشه فقط اف ها رو بپاکینا بعد بجاش کرکتری که توضیحش دادم بزارین.چیزاضافی پاک نکنین همین کارارو انجام بدین بالاخره تو یه جای کار جواب میگیرین.موفق و پیروز باشین.

آخ آخ آخ یه کار دیگه رو فراموش نکنین بعد همه اون کارا از بالای پنجره ی پشت پنجره ی دستورنویسی برنامه حتما دکمه runرو بزنین همینجوری الله بختکی دستور بعد نوشتن اجرا نمیشه هااا خخخخ اینو واسه اونایی گفتم که تجربه برنامه نویسی ندارن یه علامت فلش کوچیکه حکم پلی کردن رو داره بعد اگه اروری نده پنجره ی جدیدی بازمیشه که توش ازتون میخواد به فایل ماکروی دستوری که ساختین یه اسم بدین من گذاشتم macro sortخخخخخخخ درپناه حق

تاج سری برادر
داداش یه سوال دارم این برنامه ای که نوشتین روسلولهایی که فانکشن دارند جواب نمیده؟من بادستکاری برنامه و اضافه کردن عملگر & اون عملیات سورت بندی که تعریف کردین رو همزمان تونستم تو یه ستون دیگه اعمال کنم بار اول نسبتا جواب داد چون بطور مستقل هر ستون بالا پایین میداد سطرهارو ترتیب همو بهم میزدن بار دوم خواستم رو یه خونه ای که تابع توش تعریف کردم هم اعمال کنم ارورای دستوری میداد متاسفانه البته من سی پلاس پلاس کارکردم اون دستور &هم شانسی گذاشتم چون اکثرا دستورات عملگرا تو بیشتر زبانای کدنویسی مشترکه انگار برنامه بار اول فهمید من چی میخوام خخخخ
مهندس جان باز شما که شناخت داری از این کدنویسی میشه یه دستوری بسازی رو دو ستون بصورت توامان شرط سورت بندی رو انجام بده اگه سی پلاس پلاس بود بایه حلقهfor وچند تا دستورIfمیتونستم درستش کنم…ممنون میشم راهنماییم کنین

سلام وقت بخیر ، مهندس بسیار سپاسگزارم . واقعا سورت کردن خودکار دیتا برام مشکل لاینحل شده بود ، دست مریزاد ، واقعا کارآمد و اجرایی بود .نمیدونم چطور تشکر کنم .

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *