صفحه 3 از 3 نخستنخست 123
نمایش نتایج: از شماره 21 تا 22 , از مجموع 22

موضوع: راهنمایی جهت استخراج نام های منحصر به فرد در یک ستون

  1. #21


    آخرین بازدید
    یک روز پیش
    تاریخ عضویت
    November 2013
    محل سکونت
    تهران
    نوشته ها
    1,518
    امتیاز
    6118
    سپاس
    2,884
    سپاس شده
    4,886 در 1,380 پست
    سطح اکسل
    71.67 %

    نقل قول نوشته اصلی توسط face_2_faces نمایش پست ها
    بله عزیز فقط خود فرمولو بگین چون در اکسل مورد نظر من باید این فرمول در چند شیت مختلف اطلاعاتو بیاره یکجای دیگه
    ببينيد ما در ستون کمکي مي آييم با تابع countif بررسي مي کنيم که نام وارده در هر سل (منظور نام وارده در سل هم ارز در ستون دوم است) در خانه هاي بالايي اش چند بار تکرار شده.
    البته خانه اولي که نامي بالاتر از خودش ندارد! پس خودش را با خودش مقايسه مي کنيم، پس مي شود:
    علي از خانه b2 تا b2 چند بار تکرار شده؟
    حسن از خانه b2 تا b3 چند بار تکرار شده؟
    حسين از خانه b2 تا b4 چند بار تکرار شده؟
    الي آخر .....
    به اين ترتيب اولين باري که به يک اسم برميخوريم پاسخ تابع counif عدد يک خواهد بود چون تا قبل از آن در خانه هاي بالايي اش تکرار نشده بوده.
    بعد ما پاسخهاي تابع countif را در يک تابع شرطي if قرار مي دهيم و شرط مي کنيم که هر جا نتيجه تابع counif عدد يک بود سل را برابر: ()row قرار دهد و اگر غير يک بود سل را برابر تهي ("") قرار دهد.
    اما ()row يعني چه؟
    ()row خودش يک تابع است وقتي در يک سل تابع ()row بنويسيم (يعني بنويسيم: ()row= ) نتيجه شماره عدد مربوط به رديف آن سل خواهد بود.
    مثلا" اگر در خانه a15 تابع را بنويسيد نتيجه 15 و اگر در خانه u23 بنويسيد نتيجه 23 خواهد شد.
    پس ما در اصل با تابع if گفته ايم که: اگر نتيجه تابع counif عدد يک بود شماره رديف آن سطر را بنويس و اگر نبود هيچي ننويس.
    در نتيجه همانطور که مي بينيد در اولين باري که هر يک از اسامي در ستون مربوطه درج شده در ستون کمکي شماره رديف همان سطر درج شده، در رديف دو عدد 2 در رديف سه عدد 3 در رديف چهار عدد 4 و ... در رديف هشت عدد 8
    تا اينجا درست؟
    خوب .... حالا ما بايد چکار کنيم که در ستون d تمام موارد يکتاي اسامي ستون b را داشته باشيم؟
    با اين ستون کمکي که ما درست کرديم هر اسم اولين باري که در ستون b درج شده در ستون a يک عدد کنارش نوشته شده، ولي بارهاي بعد که تکرار شده ديگر در ستون a کنارش چيزي نوشته نشده.
    پس ما بايد به ترتيب هر جا که در ستون a عددي نوشته شده هم ارز آن در ستون b را به ستون d انتقال دهيم.
    به اين منظور از چند تابع بايد کمک گرفت اولين تابع تابع small است، اين تابع در يک محدوده قادر به پيداکردن کمترين مقدار طبق تعيين ما است، آرگومان اول آن محدوده مورد نظر و دومين آرگومان رتبه عدد است (يعني اينکه کوچکترين مقدار را پيدا کند يا دومين مقدار کوچک يا سومين يا .....)
    ما با اين تابع مي توانيم کوچکترين مقدار را در ستون a پيدا کنيم، بعد با تابع vlookup مي توانيم بگوييم که وقتي کوچکترين مقدار را پيدا کردي معادل هم ارز آن در ستون b را به ما بده.
    پس مي توانيم در سل d2 بنويسيم:
    کد PHP:
    =VLOOKUP(SMALL($A$2:$A$21;1);$A$2:$B$21;2;FALSE
    تفسير فرمول اين است: اولين مقدار کم در محدوده a2 تا a21 را پيدا کن و سپس هم ارز آن در ستون b را به ما بده
    بعد در سل d3 بايد اين فرمول را بنويسيم:
    کد PHP:
    =VLOOKUP(SMALL($A$2:$A$21;2);$A$2:$B$21;2;FALSE
    تفسير فرمول اين است: دومين مقدار کم در محدوده a2 تا a21 را پيدا کن و سپس هم ارز آن در ستون b را به ما بده
    همين طور مي توانيم فرمول را به سلهاي پايين درگ کنيم، ولي مشکل اينجا است که در تابع small وقتي فرمول را درگ مي کنيم بايد رتبه (آرگومان دوم) را سطر به سطر به صورت دستي يکي اضافه کنيم!!
    براي حل اين مشکل يک کلکي مي زنيم،
    در سل d2 جواب چنين فرمولي چه خواهد بود: 1-()row ؟؟؟؟ رديف سل d2 که برابر 2 است .... پس مي شود 1-2 يعني: 1
    پس مي توانيم در فرمول خانه d2 در آرگومان دوم تابع small به جاي 1 بنويسيم: 1-()row
    به اين ترتيب اگر فرمول را در خانه هاي پايينتر درگ کنيم 1-()row هم يکي بهش اضافه مي شود چون مثلا" 1-()row در سل d3 مي شود 1-3 يعني: 2
    پس به اين ترتيب آرگومان دوم تابع small خط به خط يکي اضافه خواهد شد بدون اينکه مجبور باشيم دستي اين کار را انجام دهيم.
    بديهي است فرضا" اگر شروع کار را از خانه: d7 شروع کنيم بايد به جاي 1-()row بنويسيم: 6-()row يا اگر خانه dx باشد بايد بنويسيم: (row()-(x-1
    در آخر تابع iferror هم اضافه مي کنيم براي اينکه اگر جواب تابع نوشته شده ما خطا داشت به جاي عبارت خطا سل را برابر تهي قرار دهد.


  2.  

  3. #22


    آخرین بازدید
    2016/04/09
    تاریخ عضویت
    June 2012
    نوشته ها
    48
    امتیاز
    4
    سپاس
    37
    سپاس شده
    4 در 4 پست
    تعیین سطح نشده است

    چقدر زیبا بود.واقعا لذت بردم.مرسی

  4. سپاس ها (1)



صفحه 3 از 3 نخستنخست 123

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. [حل شده] جستجوی یک ستون و انتقال سلولهایی که متن آنها با کلمه خاصی شروع می شود به ستون دیگر
    توسط hasanr در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 25
    آخرين نوشته: 2015/05/19, 11:32
  2. جستجوی مقادیر یک ستون در یک ستون دیگر
    توسط mfr در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 5
    آخرين نوشته: 2015/03/03, 10:39
  3. پاسخ ها: 5
    آخرين نوشته: 2015/01/21, 23:23
  4. عدم نمایش ستون هایی که مقدار آنها صفر میباشد
    توسط sogmad در انجمن گرافیک، نمودار و تنظیمات - Graphics, Charts and Settings
    پاسخ ها: 11
    آخرين نوشته: 2014/09/13, 15:52
  5. حذف ردیف هایی که در یک ستون داده تکراری دارن
    توسط victoria_1370 در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 2
    آخرين نوشته: 2014/08/18, 13:16

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

اسم های منحصر ب فرد

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است
با ما در تماس باشيد