سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه

۳ روش برای شماره ردیف خودکار در اکسل

شماره ردیف خودکار
۴.۵/۵ - (۱۴ امتیاز)

حتما تا حالا پیش اومده براتون که برای جدول داده هاتون، بخواید شماره ردیف خودکار ثبت بشه. این شماره ردیف میتونه حالت های مختلف داشته باشه. مثلا اینکه خیلی ساده شماره بزنیم یا اینکه شرطی باشه. مثلا اگه ۲ تا سلول خاص پر شد، شماره ردیف شده بشه و …

در این مقاله، چندین حالت برای شماره ردیف ارائه میکنیم که با منطق کلی حل این نوع مسئله آشنا بشید:

مسئله اول:

میخواهیم در این جدول به محض پر شدن سلول های ستون B در ستون A شماره ردیف بصورت خودکار ثبت بشه.

ثبت شماره ردیف خودکار با شرط پر بودن یک سلول

شکل ۱- ثبت شماره ردیف خودکار با شرط پر بودن یک سلول

شرح فرمول:

=IF(B2<>””,MAX($A$1:A1)+1,””)

این فرمول منطقی چک میکنه که آیا سلول روبرو پر هست یا نه B2<>””، اگر پر باشه، ماکزیمم محدوده بالای سر اون سلول رو حساب میکنه و با ۱ جمع میکنه و اگر پر نباشه اون سلول رو خالی میذاره.

مثلا سلول B4 خالی هست، پس شرط برقرار نیست و خروجی خالی یا “” خواهد بود. اما ردیف ۵ رو ببینید، سلول B5 پر هست. پس فرمول میاد ماکزیمم محدوده بالای سر A5 یعنی A1:A4 رو حساب میکنه که میشه ۲. بعد باضافه ۱ میکنه.

مسئله دوم:

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

ثبت شماره ردیف خودکار با شرط پر بودن همه فیلدها

شکل ۲- ثبت شماره ردیف خودکار با شرط پر بودن همه فیلدها

شرح فرمول:

=IF(AND(B2<>””,C2<>””,D2<>””,E2<>””),MAX($A$1:A1)+1,””)

این فرمول چک میکنه که آیا همه سلولهای روبرو پر هستن یا نه And(…,…,…)، اگر پر باشه، ماکزیمم محدوده بالای سر اون سلول رو حساب میکنه و با ۱ جمع میکنه و اگر پر نباشه اون سلول رو خالی میذاره.

پس بصورت کلی هر نوع شرطی داریم باید در قسمت Logical_Test بنویسیم. اگر شرط برقرار باشه، شماره ردیف ثبت میشه و اگر برقرار نباشه خالی میمونه. برای آشنایی بیشتر با توابع منطقی این مقاله رو مطالعه کنید.

تمرین: آیا میتونید راه های دیگه ای برای این مسئله پیشنهاد کنید؟ راه حل هاتون رو در انتهای مقاله بصورت کامنت درج کنید.

مسئله سوم:

در این مسئله میخوایم برای داده های فیلتر شده شماره ردیف ثبت بشه.

ثبت شماره ردیف خودکار روی داده های فیلتر شده

شکل ۳- ثبت شماره ردیف خودکار روی داده های فیلتر شده

شرح فرمول:

=SUBTOTAL(3,$B$2:B2)

قبلا با منطق و نوع کارکرد تابع Subtotal آشنا شدیم.

این تابع در هر سلول، تعداد سلولهای پر محدوده بالای سر و روبروی سلول حاوی فرمول رو میشماره. عدد ۳ در تابع Subtotal معادل تابع Counta عمل میکنه. دقت کنید همونطور که قبلا هم گفته شد، ویژگی تابع Subtotal اینه که سلولهایی که حاوی Subtotal هستن رو در نظر نمیگیره. پس نمیشه محدوده ستون A که حاوی تابع Subtotal هست رو به فرمول ارجاع داد.

 

نکته خیلی مهم:
وقتی از subtotal برای این کار استفاده میکنیم. ردیف آخر داده ها رو در فیلتر نمایش میده.  برای حل این مشکل دو راه وجود داره:
  1. فرمول Subtotal رو باضافه صفر میکنیم. یعنی SUBTOTAL(3,$B$2:B2)+0 . با این کار ردیف آخر داده ها در فیلتر نمایش داده نمیشه.
  2. محدوده رو به Table تبدیل میکنیم.

 

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

ویدئوی آموزشی شماره گذاری خودکار در اکسل

 

دانلود فایل این آموزش

فایل حاوی ۳ روش ارائه شده رو از اینجا میتونید دانلود کنید.

134

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • ی ۳ اردیبهشت ۱۴۰۴ / ۳:۱۳ ب٫ظ

    سلام وقت بخیر.هر هنگام فیلتر کردن میخوام کالاهیکه فیلتر شده رو به ترتیب پشت سر هم کدینک بچینه چکاتر کنم

    • آواتار
      حسنا خاکزاد ۶ اردیبهشت ۱۴۰۴ / ۱:۲۳ ب٫ظ

      سلام
      سوال واضح نیست
      منظور از کدینگ چی هست
      اگر همین شماره ردیف منظور هست. با استفاده از تابع subtotal میتونید داده فیلتر شده رو شماره ردیف بزنید

  • موسی افضلی ۲۹ آبان ۱۴۰۱ / ۱:۰۰ ق٫ظ

    سلام
    یه مشکل برخوردیم

    بخواهیم در جدول اعداد را با کلمات شرطی کنیم چی باید بزنیم
    مثلا ۲۰۰نوع جنس داریم یا مثلا ۱۰۰تا کارمند داریم برای هرکدام کد بذاریم قرار نباشه اسمشونو تایپ کنیم تا مثلا زدم ۱ بنویسه برام امین و ۲ مثلا حسین و….و این توی ۲ستون کنارهم صادق باشه سمت راست بزنیم ۱ سمت چپی بنویسه اسمشو

    • آواتار
      حسنا خاکزاد ۲۹ آبان ۱۴۰۱ / ۱۰:۱۳ ق٫ظ

      درود
      شما باید جدولی رو تهیه کندی
      یک ستون عدد یک ستون نام
      بعد در جای دیگری ،با استفاده از تابع vlookup فراخوانی رو انجام بدید

  • حسین ۱۷ اسفند ۱۳۹۹ / ۷:۲۰ ب٫ظ

    سلام من میخواستم این فایل آموزشی را دانلود کنم ولی لینک دانلودش نبود لطفا برای دانود این فایل اموزشی راهنمایی کنید

    • آواتار
      حسنا خاکزاد ۱۸ اسفند ۱۳۹۹ / ۱۱:۴۳ ق٫ظ

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

    • حسین ۱۸ اسفند ۱۳۹۹ / ۴:۳۰ ب٫ظ

      سلام من می خواستم (ویدئوی آموزشی شماره گذاری خودکار در اکسل) فایل بالا را دانلود کنم اما دانلودش غیر فعال است

      • سامان چراغی ۲۲ فروردین ۱۴۰۰ / ۱۰:۱۳ ق٫ظ

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

  • شایان ۲۱ شهریور ۱۳۹۹ / ۱:۰۳ ق٫ظ

    سلام
    من در یک ستون محتوای تکراری دارم. که تکرار آنها فراتر از ۸ بار نمیشود.
    میخواستم هر کدام از محتواها از عدد ۱ الی ۸ شماره گذاری بشوند.
    لطفا بفرمایید آیا میتوان برای این مساله فرمولی نوشت؟
    با تشکر

    • آواتار
      حسنا خاکزاد ۲۱ شهریور ۱۳۹۹ / ۷:۳۰ ب٫ظ

      درود بر شما
      از تابع countif و تکنیک محدوده متجرک در فرمول نویسی استفاده کنید

  • امین ۱۹ اردیبهشت ۱۳۹۹ / ۷:۱۷ ب٫ظ

    سلام و خداقووت
    من در اکسل تمام ردیف هارا براساس یکی از ستون هام sort میکنم…حالا میخوام ببینم در اکسل این امکان وجود دارد که با اضافه کردن یک ردیف به صورت خودکار خودش sort شود؟؟؟بدون اینکه من خودم گزینه sort بزنم……

    • آواتار
      حسنا خاکزاد ۱۹ اردیبهشت ۱۳۹۹ / ۹:۲۱ ب٫ظ

      درود
      ابزار هر بار باید اجرا بشه
      اگر بخواد اتومات بشه، باید یا کدنویسی وی بی انجام بدید
      یا سورت کردن رو با فرمول نویسی انجام بدید

      • امین زاده ۲۰ اردیبهشت ۱۳۹۹ / ۷:۳۰ ب٫ظ

        بله ممنون میشم اگه کدنویسی شو بهم آموزش بدید،چون واقعا با هر بار اضافه کردن یک ردیف sort کردن خیلی خوشایند نیست…..
        ممنون از راهنماییتون

        • آواتار
          حسنا خاکزاد ۲۱ اردیبهشت ۱۳۹۹ / ۲:۱۷ ب٫ظ

          ماکرو کاری که میخواید انجام بدید رو ضبط کنید
          مقاله ضبط ماکرو رو بخونید.
          مناسب با فایل خودتون باشه

  • سیامند ۲ اردیبهشت ۱۳۹۹ / ۴:۱۸ ب٫ظ

    به نام خدا
    سلام روز شما بخیر
    ممنون از مطالب بسیار کاربردی و مفیدتان، سوالی برام پیش اومده برای اینکه در یک سلول پس از اینکه متنی وارد شد (یا عددی) پهنا یا ارتفاع سلول بطور اتوماتیک تنظیم شود، چه راهکاری داریم؟ البته راههای دستی اعم از وارد کردن پهنا یا ارتفاع سلول و یا دبل کلیک روی مرز ردیف یا سلول (یا Auto fit …..) بایستی بعد از وارد کردن متن حتما اینکارها رو انجام داد ولی من می‌خواهم بعنوان مثال نتیجه محاسبه یک سلول که عددی است، با توجه به اینکه ممکن است تعداد رقمها تغییر کند، بعد از بدست آمدن نتیجه یا تغییر در محاسبه همزمان پهنا یا ارتفاع سلول هم تغییر کند تا دیگر نیازی به انجام دستی نباشد

    • آواتار
      حسنا خاکزاد ۲ اردیبهشت ۱۳۹۹ / ۷:۲۰ ب٫ظ

      درود
      باید کد نویسی کنید. که به نظرم ارزشی نداره. چون کار دستیش، زمانی نمیبره

    • d ۲۶ مرداد ۱۳۹۹ / ۹:۰۱ ق٫ظ

      سلام
      در وی بی:
      EntireColumn.AutoFit.

  • علی اصغر ۱۹ آذر ۱۳۹۸ / ۱:۵۸ ب٫ظ

    ضمن عرض خسته نباشید
    میشه یه کدی رو بهم معرفی کنید که با تغییر ستون زبان ستون به لاتینت غییر کنه؟
    ممنون میشم کمکم کنید

    • سامان چراغی ۲۴ اردیبهشت ۱۳۹۹ / ۹:۱۷ ب٫ظ

      سلام
      کد مناسب برای انجام این کار خیلی طولانی هست که در اینجا نمیشه قرار داد.
      به راحتی با یه جستجو اینترنتی میتونید کدش رو پیدا کنید.

  • لیلا ۸ آبان ۱۳۹۸ / ۲:۴۰ ب٫ظ

    باسلام و خسته نباشید. من هرکاری میکنم این فرمول جواب نمیده و error میده. =IF(B2””,MAX($A$1:A1)+1,””)
    کپی پیست کردم، خودم تایپ کردم ولی متأسفانه جواب نداد. وقتی enter رو میزنم میگه:
    We found a problem with this formula. Try clicking Insert Function on the formula tab to fix it.
    وقتی کاری رو گفته رو میکنم چیز خاصی پیدا نمیکنم. ممنون میشم راهنمائی کنید.

    • سامان چراغی ۱۰ آبان ۱۳۹۸ / ۱۰:۵۷ ق٫ظ

      سلام
      یک مقدار فرمولتون بهم ریخته هست اما ساختار درست فرمول باید به صورت زیر باشه:

      =IF(B2<>"",MAX($A$1:A1)+1,"")
      

      که به نظر میاد شما علامت <> رو در آرگومان اول تابع IF جا انداختید.

      • لیلا ۱۱ آبان ۱۳۹۸ / ۸:۱۲ ق٫ظ

        خیلی ممنون از پاسختون. ولی هنوز همون error رو میگیرم.

        • سامان چراغی ۱۱ آبان ۱۳۹۸ / ۹:۴۸ ق٫ظ

          این فرمول از نظر ساختاری درست هست. ممکنه که در سیستم شما به جای کاما باید ; استفاده بشه و همین باعث نمایش خطا میشه.

          • لیلا ۱۱ آبان ۱۳۹۸ / ۱۰:۰۸ ق٫ظ

            بینهایت ممنون. درست شد.

  • صبا ۵ آبان ۱۳۹۸ / ۱۱:۲۹ ب٫ظ

    بزگوار ممنون از آموزش. فرض کنید من یه سری داده در ستون یک و یه سری داده در ستون دو. میخوام در ستون سه، فقط داده های ضریب سه رو بگیرم و همچنین در ستون سه،بقیه داده ها رو داشته باشم.نظرتون چیه چیکار باید بکنم؟ مثلا داده ضریب سه ستون یک، اعدادی هست که درسته و بقیه داده های ستون دو، اطلاعات درسته. میخوام توی ستون سه، همه این ها رو با هم داشته باشم.
    ممنونم

    • آواتار
      حسنا خاکزاد ۴ آذر ۱۳۹۸ / ۱۲:۳۳ ب٫ظ

      درود
      سوال خیلی گنگه
      مثال بزنید

  • علی ۲۴ شهریور ۱۳۹۸ / ۱:۲۷ ب٫ظ

    باید از conditional formatting استفاده کنید

ارسال دیدگاه

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

توسط
تومان