سلام دوست عزیز
شما یا باید به زبان بیسیک اکسل مسلط باشید با بیسیک برنامه بنویسید یا با اکسز میتوانید با اینجا 2 table و رله کردن به هم جواب بگیرید.
سلام و عرض ادب خدمت شما جناب احسانی
ببخشید دوباره تاپیک رو احیا کردم , حقیقتش یه انتقادی به مطلب شما داشتم و خواستم عنوان کنم .
جناب احسانی من از شما میپرسم توی حسابرسی یه شرکت سهامی عام با چندهزار کارگر دیدم که ذخیره مزایای پایان خدمت نگرفتن . چیکار کنم چجوری با موضوع برخورد کنم یا مثلا محاسبه شده چجوری بفهمم درسته ؟ چجوری تو بند بیارمش که نشون دهنده اهمیت موضوع باشه ؟
حالا شما به من جواب میدید "خب شما باید حسابرسی بلد باشی اگه اصول حسابداری هم خبره باشی چه بهتر ."
این مصداق پاسخ شماست .
اول این که ایشون خب اگه بلد بودن که نمیپرسیدن . و قسمت دوم این که ایشون در اکسل پرسیدن نه اکسس , بهتر نیست ابتدا پاسخ رو در اکسل بدیم بعد بهشون پیشنهاد کنیم که میتونن این کار رو تو اکسس هم بکنند .
این که شما جواب اکسل رو بدید فروم خودتون قوی میشه و ایشون هم ممکنه نتونن ببرن توی اکسس (حالا به هر دلیلی) و در نهایت که اکسس رو هم به ایشون یاد بدید باز هم فرومتون رو قوی کردید هم جواب ایشون رو به نحو احسنتش دادید .
موافقید ؟
اما نمیخوام صرفا انتقاد کنم .
دوست عزیز اینطور که فهمیدم میخوای ستون دومی رو با اولی مقایسه کنی . یعنی ستون دوم مبنا باشه و هر چی توی ستون اول هست که توی ستون دومم هست برات معادلشو بنویسه و اونایی که نیست رو خالی بذاره درسته ؟
خب اول جای ستون ها رو جابجا کن تا بهتر بتونیم مقایسه کنیم . یعنی اول ستون مبنا بعد ستون مقایسه شونده .
الان چیز زیادی به ذهنم نمیرسه که روش فکر کنم . ولی تاپیک رو احیا میکنم خودت دنبال جواب باش . ولی راههای زیادی برای این کار هست .
اینو خودم استفاده میکردم . ساده ترین کدی که میتونم پیشنهاد بدم .
Sub Find_Matches()
Dim CompareRange As Variant, x As Variant, y As Variant
Set CompareRange = Range("a1:a20")
For Each x In Selection
For Each y In CompareRange
If x = y Then x.Offset(0, 1) = x
Next y
Next x
End Sub
به جای a1 تا a10 ستون مبنات رو بنویس و بعد برو توی صفحه گستردت و اون ستونی که قراره مقایسه بشه رو انتخاب کن بعد این ماکرو رو اجرا کن
اونایی که توی مبنا و توی ستون مقایسه شونده بودن روبروی ستون دوم یعنی همون مقایسه شونده
کپی میشن.( x.Offset(0, 1) = x)
این میتونه شروع کارت باشه و با پیچیدگی کارت تغییرات زیادی هم داشته باشه.
از فرمول هم میتونی استفاده کنی
مثلا یه ستون کنار اون دوتا ستون رو برا فرمول قرار بده و فرمول زیر رو بنویس
=IF(ISERROR(MATCH(B1,$A$1:$A$20,0)),"",B1)
و تا A20 بسط بده
به جای B1 باید سلول اول ستونی که قرار مورد مقایسه قرار بگیره بذاری
به جای $A$1:$A$20 هم باید ستون مبنات رو بنویسی
این فرمول هم هست همونه
=IF(COUNTIF($A$1:$A$20,B1)>0,B1,"")
تو مثالای بالا من جای ستون اول و دومت رو عوض کردم و ستون اول رو که کمتر عدد داره مبنا قرار دادم و ستون دوم که بیشتر عدد داره ستون مقایسه شونده .
از Advanced Filter و گزینه Copy to another location هم میتونی استفاده کنی.
از Conditional Formatting هم میتونی استفاده کنی و بعد اونایی که فقط دفعه اول تکرار میشین رو رنگی کنی بعد رنگی ها رو سورت کنی.
دفعه اول یعنی توی هر دو ستون باشه و دفعه اولشون باشه که تکرار میشن چون ممکنه 10 تا 1 هم داشته باشی.
اگه تونستم برات منبع و مرجع هم میارم با مثالای بهتر