جلوگیری از ورود داده تکراری در اکسل

جلوگیری از ورود داده تکراری در اکسل
۴.۹/۵ - (۱۲ امتیاز)

ورود داده تکراری مشکل مهم در ورود اطلاعات

وقتی که داریم داده در اکسل وارد میکنیم یا فرمی تهیه کردیم که سایر افراد از طریق اون داده وارد دیتابیس اکسل بکنند، لازمه که یک سری کنترل هایی روی ورود داده انجام بدیم که داده ها به درستی در بانک اطلاعاتی ذخیره بشن. مثلا بهتره که کنترلی روی ستون مربوط به کد ملی ایجاد کنیم که هر بار چک بکنه که آیا کد ثبت شده ۱۰ رقم هست یا نه. یا مثلا عددی رو در بازه مشخصی داریم ثبت میکنیم، بهتره که کنترلی روی اون ستون داشته باشیم که داخل بازه بودن عدد وارد شده رو چک کنه و اگر در بازه مورد نظر نبود، هشدار بده یا اینکه از ورود اطلاعات تکراری جلوگیری کنه.

هر گاه بخوایم روی ورود داده ها در اکسل از این قسم کنترلها ایجاد کنیم، میتونیم از ابزار Data Validation استفاده کنیم. ابزار data Validation در واقع کمک میکنه به اینکه داده صحیح و سالم و استاندارد در دیتابیس وارد بشه و از ورود داده های ناصحیح جلوگیری میکنه.

جلوگیری از ورود داده تکراری در اکسل از مسائل پر کاربرد به حساب میاد. برای این موضوع یک راه حل ترکیبی ارائه میکنیم. در واقع فرمول نویسی در ابزار Data validation  راه حل ترکیبی است که باید مورد استفاده قرار بگیره.

برای این کار باید در دیتاولیدیشن فرمولی بنویسیم که تشخیص بده رکورد فعلی که داره ثبت میشه در محدوده بالای سرش وجود داشته یا نه (در واقع محتوای سلول فعلی در محدوده بالای سرش شمرده بشه، اگر تعدادش بیش از ۰ بود، یعنی در محدوده بالا تکرار شده. پس نباید اجازه ثبت رکورد مورد نظر داده بشه).

برای درک بهتر این موضوع به مثال زیر دقت کنید.

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

مطابق شکل ۱ روی سلول A2 کلیک کرده و از تب Data گزینه Data Validation رو میزنیم.

جلوگیری از ثبت داده تکراری

شکل ۱- جلوگیری از ثبت داده تکراری

از قسمت Allow گزینه Custom رو انتخاب میکنیم و فرمول زیر رو در قسمت Formula می نویسیم. (مطابق شکل ۲)

=Countif ($A$1:A1 , A2) <1

در واقع معنی این فرمول اینه که: به داده ای اجازه ثبت بده که تعدادش در محدوده بالای سرش کمتر از یک (یعنی صفر) باشه.

نوشتن فرمول Countif در ابزار Data Validation

شکل ۲- نوشتن فرمول Countif در ابزار Data Validation

در قسمت Error Alert هم میتونیم پیام هشدار رو تنظیم کنیم. مثلا بنویسیم: شما مجاز به ثبت داده تکراری نیستید. برای این کار مطابق شکل ۳ عمل میکنیم:

تنظیم پیام خطا در صورت ثبت داده تکراری

شکل ۳- تنظیم پیام خطا در صورت ثبت داده تکراری

بعد از زدن OK کافیه ولیدیشن رو روی بقیه سلولهای مورد نظر اعمال کنیم. برای این کار سلول A2 را کپی کرده و محدوده A3:A13 رو انتخاب کرده و از پنجره Paste Special (Ctrl+Alt+V) گزینه Validation رو انتخاب میکنیم.

حالا اگر داده تکراری ثبت کنیم، پیام خطا مشابه شکل ۴ نمایش داده خواهد شد.

نمایش پیام هشدار در صورت ثبت داده تکراری

شکل ۴- نمایش پیام هشدار در صورت ثبت داده تکراری

سوال: فرمول دیگه ای که بتونه جلوگیری از ورود داده تکراری در اکسل رو انجام بده میتونید ارائه بدید؟

پاسخ رو در ادامه همین پست و در قالب کامنت ثبت کنید.

این کار با استفاده از افزونه Kutools در اکسل هم قابل انجام هست.

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

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

آواتار
182

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

دیدگاه کاربران
  • مهشاد ۲۷ اسفند ۱۴۰۱ / ۱۰:۴۸ ق٫ظ

    سلام فرمولی میخوام که وقتی داده ای تکراری میدم به خانه ها داده جدید ثبت بشه و قدیمی همزمان پاک بشه
    امکان این امر هست؟
    به عنوان مثال عدد جدید که وارد شد همون عدد از اون سطر ولی در خانه های دیگه پاک بشه

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

      درود بر شما
      این قبیل کارها با کدنویسی وی بی ای شدنی هست

  • m ۱۶ شهریور ۱۴۰۱ / ۹:۴۲ ب٫ظ

    با سلام
    چکونه می توان همزمان دو کار از دیتا ولیدیشن بخواهیم
    مثلا همزمان هم این مورد شما را بخواهیم و هم بخواهیم لیست درست کنیم.

    • سامان چراغی ۲۲ مهر ۱۴۰۱ / ۱۱:۱۵ ب٫ظ

      عرض سلام
      اجرای همزمان این دو کار در دیتاولیدیشن نیست، برای همین باید از VBA استفاده کرد که جلوی ورود تکراری مقادیر رو بگیره.

  • مجتبی کولیوند ۳ اسفند ۱۴۰۰ / ۸:۵۳ ق٫ظ

    با سلام خدمت اساتید عزیز چراغی و خاکزاد
    جلوگیری از ورود داده با استفاده از Data Validation یه ایراد داره اونم اینکه اگه شما ابتدا سلول پایین تر رو با یه دیتا مشخص پر کنید می تونید توی سلول بالاترش دوباره دیتای تکراری وارد کنید به عنوان مثال اگه روی ستون A این فرمول نوشته بشه ، شما اگه ابتدا سلول A10 رو با داده مشخص مثل NAME پر کنید بعد میتونید به راحتی در سلول A5 دوباره کلمه NAME رو وارد کنید.
    راهکاری برای این وجود داره؟

    • سامان چراغی ۷ اسفند ۱۴۰۰ / ۹:۳۰ ب٫ظ

      سلام
      بله Data Validation به خودی خود ایراداتی داره، برای حل مسئله ای که مطرح کردید میتونید در تابع Countif به جای تعیین دامنه پویای بالای سلول مورد نظر، میتونید کل ستون A یا یک محدوده ثابت و بزرگ رو در نظر بگیرید و شرط رو کوچکتر مساوی یک قرار بدید.

  • Ali ۵ آبان ۱۳۹۹ / ۱۰:۲۹ ب٫ظ

    سلام مهندس من میخوام توی دو تا ستون با هم چک کنه که داده تکراری هست یا نه مثلا از ستون a2تا a25 و ستون f2 تا ستون f25

  • محمدحسین ده شیری ۱۶ مهر ۱۳۹۹ / ۱۱:۴۲ ق٫ظ

    سلام
    خانم مهندس جسارتا بنده عیناً همان فرمولی که شما تایپ کرده اید را زدم! اما اولا به اون مساوی اولش گیر میده! وقتی مساوی رو بر میدارم فرمول رو قبول میکنه اما وقتی توی سلول های اعمال شده هر عددی رو وارد میکنم error میده!! لازم به ذکر هست دقیقاً مثل شما وارد کردم

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

      درود
      اگر دقیقا همه مراحل رو تکرار کرده باشدی که نتیجه میگیرید! یجای کار دقیق نیست

      = رو کپی نکنید و تایپ کنید بصورت دستی
      جداکنننده ها و پرنتز و ” همه رو تایپ کنید

      • مصطفی ۲۰ شهریور ۱۴۰۱ / ۹:۲۶ ق٫ظ

        منم دقیقا همین مشکل و دارم تایپم کزدم نشد

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

    درود بر سروران
    با استفاده از تابع countif و انتخاب محدوده یک ستون و مشخص نمودن سلول فعال به عنوان اینکه محتوی این سلول را در ستون جستجو کن و اگر تکرار آن بیش از ۱ بود از ورود آن ممانعت کن ( COUNTIF(A:A,A1)<2) با خطای circular references مواجه می شوم که منطقی بنظر می رسد. فرمول من برای جلوگیری از تکرار ورودی اشتباه است ؟ یا از این خطا صرف نظر کنم؟

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

      درود
      اگر این فرمول در data validation نوشته بشه این خطا رو نمیگیرید. اگر در سلول A1 هستید و این فرمول رو نوشتید، خطا رو به درستی دریافت کردید ولی کنترلی بر ورودی ندارید چون فقط در یک سلول نوشته شده نه در ابزار Data validation

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

        از راهنمایی شما بسیار سپاسگذارم

  • سامان ۱۷ مرداد ۱۳۹۹ / ۴:۰۲ ب٫ظ

    با سلام. مشکلی که من دارم صفر قبل از عدد رو نمیشناسه. مثلا ۱ و ۰۱ رو یه عدد در نظر میگیره و ارور تکرار میده. میتونید راهنماییم کنید چجوری مشکلشو حل کنم؟ ضمنا فورمت سلول هم تکست هستش

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

      درود
      بله ظاهرا مسئله توی countif به این صورته.
      میتونید از vlookup یا match استفاده کنید

      ****به محدوده متحرک بالاسری دقت کنید****

      
      =ISERROR(MATCH(H2,$H$1:H1,0))
      
      • سامان ۱۸ مرداد ۱۳۹۹ / ۱:۱۱ ب٫ظ

        بسیار ممنون از راهنماییتون.

  • مکتوبی ۲۵ فروردین ۱۳۹۹ / ۱۰:۴۴ ق٫ظ

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

    • آواتار
      حسنا خاکزاد ۲۵ فروردین ۱۳۹۹ / ۱۰:۵۶ ق٫ظ

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

  • مسعود نوری راد ۲۳ دی ۱۳۹۸ / ۷:۴۳ ب٫ظ

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

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

      درود
      منظور از کد بالایی و پایینی چی هست؟

  • ***** ۱۷ مهر ۱۳۹۸ / ۱:۰۸ ب٫ظ

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

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

      درود بر شما
      شاید مساوی رو جای درست ینمیذارید
      به پرانتزها هم دقت کنید . به اندازه و بجا گذاشته بشه

      • OMID ۲۲ آذر ۱۳۹۸ / ۱۱:۳۲ ب٫ظ

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

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

          درود بر شما
          data validation روی تایپ عکس العمل نشون میده. با کپی پیست کاری نداره!

          • امید ۹ دی ۱۳۹۸ / ۸:۱۵ ب٫ظ

            کار من انبار گردانی هست و بیتر با کپی پیست کار می کنم ، راه حلی برای این دارید تا وقتی کپی پیست می کنم اعداد تکراری رو ثبت نکنه؟

ارسال دیدگاه

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