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

مقایسه دو لیست در اکسل
۴.۸/۵ - (۲۵ امتیاز)

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

مشخص کردن موارد مشترک حالت های مختلفی دارد:

۱- می توان موارد مشترک را از طریق فرمول نویسی بصورت جداگانه لیست کرد.
۲- می توان با فرمول نویسی سل روبروی هر مورد مشترک را متمایز کرد.
۳- می توان موارد مشترک در یک لیست را با تغییر رنگ خاصی متمایز کرد.

در این آموزش نحوه متمایز کردن موارد مشترک از طریق اعمال فرمت (رنگ سل) را شرح می دهم:

مطابق شکل ۱ لیستی از نام شهرها داریم (لیست۱). حالا میخواهیم شهرهایی از لیست ۱ که در لیست ۲ وجود دارند را رنگی کنیم.

داده های موجود برای مقایسه

شکل ۱- مقایسه دو ستون در اکسل – داده های موجود برای مقایسه

همانطور که می دانید عمل رنگ کردن یا بعبارتی اعمال فرمت های مختلف بر روی یک سل بر اساس یک شرط، از طریق Conditional Formatting انجام می شود.

برای اینکه بتوانیم تشخیص دهیم کدام شهر از لیست ۱ در لیست ۲ وجود دارد، کافیست تعداد هر شهر از لیست ۱ را در لیست ۲ شمارش کنیم. مثلا باید فرمولی بنویسیم که تعداد اصفهان را در لیست ۲ شمارش کند. اگر بیش از صفر باشد، یعنی آن شهر در لیست ۲ تکرار شده است و اگر صفر باشد یعنی آن شهر در لیست ۲ وجود ندارد. پس با استفاده از تابع Countif این کار را انجام می دهیم:

=COUNTIF($D$2:$D$5,B2)

خروجی این تابع صفر است زیرا شهر اصفهان در لیست ۲ وجود ندارد.

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

=if(COUNTIF($D$2:$D$5,B2)>0,1,0)

این فرمول بررسی می کند که آیا تعداد شهر مورد نظر در لیست ۲ بیشتر از صفر است یا نه. اگر بیشتر از صفر باشد، خروجی ۱ یعنی فرمت اعمال می شود و اگر نباشد خروجی صفر خواهد بود یعنی فرمت اعمال نمی شود.

روی سل B2 قرار گرفته و از مسیر زیر و مطابق شکل ۲، فرمول بالا را وارد می کنیم و فرمت دلخواه را از قسمت Format تنظیم میکنیم و Ok را می زنیم:

Home> Conditional_Formatting> New Rule> Use a formula to determine which cells to format

استفاده از Conditional Formatting

شکل۲- مقایسه دو ستون در اکسل – فرمول نویسی در Conditional Formatting

حالا کافیست شرط مورد نظر را به محدوده لیست ۱ انتقال دهیم. برای این کار ۲ روش وجود دارد:

  • Format Painter : بر روی سل B2 قرار می گیریم و از تب Home گزینه format painter را کلیک کرده، سپس محدوده مورد نظر برای اعمال فرمت را انتخاب میکنیم. (که در اینجا کل لیست۱ یا محدوده B2:B13 است)
  • مطابق شکل ۳ و از مسیر زیر، محدوده اعمال فرمت شرطی مورد نظر را تنظیم می کنیم:

Home> Conditional_Formatting> Manage Rule> Applies to

گسترش Conditional Formatting در شیت

شکل۳- مقایسه دو ستون در اکسل – تنظیم محدوده مورد نظر برای اعمال فرمت شرطی

با زدن Apply فرمت شرطی بر روی محدوده مورد اعمال می شود. یعنی مانند شکل ۴ شهر هایی که تعداد آنها در لیست ۲ بیش از صفر است رنگی می شود.

مقایسه دو لیست در اکسل - مقایسه دو لیست
شکل۴- مشخص شدن مواردی از لیست ۱ که در لیست ۲ وجود دارند

نکته:
می توان پس از انجام این مراحل، ستون لیست ۱ فیلتر کرده و از طریق  Filter By color و انتخاب رنگ اختصاص داده شده در Conditional Formatting، همه سل های رنگی شده را بصورت یکجا مشاهده کنیم یا حتی آنها را کپی کرده و در جای دیگری Paste کنیم.
134

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

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

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

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

      درود بر شما
      فرمول نویسی داخل Conditional Formatting
      ۲تا قاعده باید بنویسید یکی برای رنگ سبز یکی قرمز
      فرمولش هم ساده است:
      =A1B1
      بشه سبز

  • محسن جعفری ۶ خرداد ۱۴۰۲ / ۶:۲۰ ب٫ظ

    سلام یک لیست مرجع از چکهای مشتریان داریم که خروجی از سیستم حسابداری هست و ما به استناد همین فایل آخرین وضعیت چک را در گزارش اکسل ثبت می کنیم.(مثلا در کدوم بانک خوابونده شده و یا برگشت خورده و یا به درخواست صاحب چک برگشت نخورده)/ حالا این لیست هر روز آپدیت میشه و ردیفهایی بهش اضافه میشه یا اینکه چک خرج میشه و از لیست حذف میشه. چطور میتونم در گزارش اکسل که درست کردیم و به فایل مرجع (خروجی از حسابداری) لینک شده. ردیفهایی که تغییر نکرده بدون تغییر باشن و ردیفهای اضافه شده به گزارش ما هم اضافه بشه و ردیفهای حذف شده از لیست گزارش ما هم حذف بشه. به طرز دیگری اگر بخوام توضیح بدم. ما یک لیست مرجع داریم و یک لیست که از مرجع استفاده کردیم و توضیحاتی به ردیفهای مرجع اضافه کردیم. حالا میخوام بدون اینکه توضیحات از بین بره، ردیفهای اضافه شده را اضافه کنیم و اگر ردیفی حذف شده کاملا از گزارش ما هم حذف بشه

    • سامان چراغی ۱۷ خرداد ۱۴۰۲ / ۸:۴۰ ق٫ظ

      درود، پاسخ سوال شما خیلی بستگی به این داره که گزارش فعلی شما به چه صورت ایجاد شده باشه.
      بنده اگر جای شما باشم ترجیح میدم از ابتدا با استفاده از Power Query اطلاعات مورد نیاز رو از فایل مرجع وارد اکسل کنم و در صورت نیاز با استفاده از DAX در دیتامدل Measure های مورد نیاز رو ایجاد کنم. اینطور با هر با رفرش کردن همه موارد به روز می شوند.

  • احمد اکرامی ۱۴ خرداد ۱۴۰۱ / ۹:۰۳ ق٫ظ

    باسلام وتشکراززحمات شما
    ستونی ازاعدادمختلف دارم میخواهم درستون کنارآن هرسلول راباسلول های مافوقش مقایسه کنم واگر موردی تکراری به دست آمد عددمثلایک رابرای من ثبت کند

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

      درود
      منطق تکراریبودن رو متوجه نشدم
      منظور اینه که اگر یکی با بالایی برابر بود یک بذاره؟

  • عارف ۷ اسفند ۱۳۹۹ / ۶:۳۱ ب٫ظ

    سلام
    اگه بخواهیم از ورود داده تکراری در چاپ لیبل انجام دهیم باید چکار کنیم

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

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

  • هيرش ۱۳ بهمن ۱۳۹۹ / ۳:۱۶ ب٫ظ

    با سلام
    لطفا راهنمایی کنید که چگونه دوستون رو با هم مقایسه کنم که تعدادی از اعداد در یک ستون با اعداد ستون دیگر برابر است مثلا ستون ۱ شامل ۱۲۳۴۵ و ستون دو شامل ۹۸۷۶۱۲۳۴۵ چه فرمولی به کار ببرم که نشان دهد پنج رقم سمت راست ستون دو با ستون یک برابر است ممنون

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

      درود
      با توابع left یا right تعداد ارقام مورد نظر رو جدا کنید و بعد با استفاده از همین اموزش مقایسه رو انجام بدید
      یا اینکه از Wildcard استفاده کنید
      ۱۲۳۴۵* یعنی کدهایی که به ۱۲۳۴۵ ختم میشن و میتونه در تابع countif قرار بگیره

ارسال دیدگاه

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