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

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

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

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

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

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

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

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

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

همانطور که می دانید عمل رنگ کردن یا بعبارتی اعمال فرمت های مختلف بر روی یک سل بر اساس یک شرط، از طریق 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 رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • محمد ۸ فروردین ۱۳۹۷ / ۱۱:۴۶ ق٫ظ

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

    • سامان چراغی ۸ فروردین ۱۳۹۷ / ۱۱:۵۱ ق٫ظ

      چرا از Vlookup استفاده نمیکنید؟
      نهایتا اگر نتونید دست به جدولتون بزنید بهتره یک جدول میانی ایجاد کنید و اون رو سرت کنید.

  • محمد ۸ فروردین ۱۳۹۷ / ۱۱:۰۳ ق٫ظ

    سلام وقت بخیر-سال نو مبارک
    من از فرمول LOOKUP استفاده میکنم اما اگه مرتب نباشه اطلاعات غلطی میدهد چیکار کنم (در ضمن نمیخواهم سرت کنم چون از چندین ستونش استفاده میکنم و اگه ستون اول رو مرتب کنم برای ستون های بعدی که اطلاعات میگیرم بازم اشتباه میشه)

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

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

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

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

  • محمد ۱۲ اسفند ۱۳۹۶ / ۱۱:۳۴ ق٫ظ

    وقت بخیر
    در Sheet1 اسامی تعدای از پرسنل-دهنوی-حسینی-باقری—در Sheet2 اسامی محمدی-کلاته-دهنوی-باقری -حالا در شیت۳میخوام بگم که اسامی هردو شیت رو بدون تکرار بیار که جوابش باید دهنوی-حسینی-باقری-محمدی و کلاته باشه از چه فرمولی استفاده کنم
    با تشکر

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

      درود بر شما
      دوتا لیست رو یکی کنید در شیت سوم
      و با این فرمول (آرایه ای) لیست یونیک تهیه کنید.
      دقت کنید که برای فرمول نویسی آرایه ای از Ctrl+shift+enter استفاده میشه

      =IFERROR(INDEX($B$2:$B$15,MATCH(0,COUNTIF($E$1:E1,$B$2:$B$15),0)),"")
      

      فرضیات فرمول:
      لیست تکراری در محدوده B2:B15 قرار گرفته و فرمول لیست یونیک از E2 شروع میشه

      اگر از ابزار میتونید استفاده کنید هم میتونید از ابزار consolidate استفاده کنید.

  • فاطیما ۲۵ بهمن ۱۳۹۶ / ۹:۳۴ ب٫ظ

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

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

      درود بر شما
      همین مسئله در این آموزش توضیح داده شده.
      کافیه با sumif,countif و … اینکار و انجام بددی.
      معیار مقایسه ی چیزی مثل شماره سند باید باشه که در هر دو مشترک و یونیک هست.

      در نهایت اگر نشد، نمونه کوچیک از فایلتون رو در گروه تلگرامی اکسل پدیا (لینکش در فوتر صفحه اصلی موجود هست)، بذارید و سوال رو دقیق تر مطرح کنید

      موفق باشید

  • محمد ۳۰ دی ۱۳۹۶ / ۱۱:۱۴ ق٫ظ

    تشکر از اینکه وقت گذاشتید-درست شد یک اشتباه کوچکی داشتم که رفع شد.مرسی

  • محمد ۳۰ دی ۱۳۹۶ / ۱۰:۴۴ ق٫ظ

    فرمول رو کپی کردم بازم جواب نداد-چون هرسه ایتم در یک ردیف هستندA1رو تغییر دادم بهA2

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

      خب فایل رو در سوپر گروه تلگرامی بذارید تا بشه بررسی کرد.
      فایل یا عکسشو….
      لینک گروه در فتر صفحه اصلی سایت موجود هست

  • محمد ۲۸ دی ۱۳۹۶ / ۱:۳۸ ب٫ظ

    سلام من سه تا ستون دارم-۱بدهکار-۲بستانکار -۳تایید نشده-میخوام بگم ستون ۲و۳باهم جمع و از ستون ۱کسر گردد حالا جواب رو توی دو ستون ۵و۶بده که اگه بزرگتر مساوی صفر بود در ستون۵ و کوچکتر مساوی صفر در ستون ۶قرار بده-ممنون میشم از راهنمایی تون

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

      سلام
      باید If استفاده کنید

      در ستون ششم بویسید:

      =if((C2+B2)-A1<0,(C2+B2)-A1,"")
      

      در ستون پنجم بنویسید:

      =if((C2+B2)-A1<0,"",(C2+B2)-A1)
      

      این لینک رو ببینید:
      https://excelpedia.net/if-function/

  • کیوان ۲۵ دی ۱۳۹۶ / ۶:۱۲ ب٫ظ

    سلام
    نام شهرهای که از لیست ۱ در لیست ۲ نیستن تغییر رنگ اعمال بشود؟ نحوه فرمول نویسی آن چگونه است.

    از زحمات شما متشکرم

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

      سلام
      کافیه شرط بزرگتر از ۰ رو به ۰ تغییر بدید

      • کیوان ۲۶ دی ۱۳۹۶ / ۱۲:۲۹ ب٫ظ

        سلام
        از پاسخ شما متشکرم.

        این فرمول IFERROR(COUNTIF($D$2:$D$5;B2);””) درست است یا خیر؟

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

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

          توجه کنید که برای رنگی کردن شرطی حتما باید داخل کاندیشنال فرمتینگ نوشته بشه

  • رضا ۱۷ آبان ۱۳۹۶ / ۷:۵۲ ب٫ظ

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

    • سامان چراغی ۲۰ آبان ۱۳۹۶ / ۱۲:۲۶ ب٫ظ

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

ارسال دیدگاه

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