سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه

قواعد فرمول نویسی حرفه ای در اکسل | قسمت دوم

آدرس دهی
۴.۳/۵ - (۴۱ امتیاز)

چرا آدرس دهی بسیار مهم است؟

همانطور که قبلا گفتم فرمول نویسی حرفه ای اصول و قوانینی داره که یکی از مهم ترین موضوعات، بحث مطلق/نسبی (Absolute/Relative) بودن آدرس محدوده هاست. این موضوع وقتی مطرح میشه که بخوایم فرمولی که نوشتیم رو Drag کنیم. اگر به این مسئله تسلط عالی نداشته باشیم، هیچ وقت نمیتونیم به فرمولی که می نویسیم و درگ می کنیم اعتماد کنیم و مجبوریم تک تک نتایج رو بررسی کنیم که این کار در مقیاس های بزرگ بسیار وقتگیر خواهد بود. برای درک بهتر این موضوع (آدرس دهی) اول باید با نحوه ارجاع به یک سلول و یا فراخوانی یک سلول در اکسل آشنا بشیم که به دو روش صورت میگیره:

  • مدل A1
  • مدل R1C1 یا (Row1Column1~ ردیف۱ستون۱)

هر دوی این آدرس ها به سل A1 اشاره می کنند که پیش فرض اکسل، همون حالت اول یعنی A1 است. فقط یک نکته اینکه درصورتی که بخواهیم از حالت دوم استفاده کنیم، باید تیک گزینه R1C1 reference style در شکل ۱ را بزنیم تا سرستون های اکسل از A, B, C… به ۱,۲,۳… و در نتیجه نوع آدرس دهی از A1 به R1C1 تغییرکند.

تغییر نوع آدرس دهی دراکسل

شکل۱- آدرس دهی – تغییر نوع آدرس دهی دراکسل

حالا با حل یک مثال، بحث نسبی و مطلق بودن آدرس در فرمول نویسی رو شرح میدم:

محدوده ای از اعداد داریم که میخواهیم همه رو در یک سل به خصوص ضرب کنیم. طبق شکل ۱، در سل C2 می نویسیم A2*C1= و درگ می کنیم. مسئله ای که پیش میاد این هست که همه سل ها در حین درگ کردن، با هم حرکت میکنند (مطابق شکل ۱).

آدرس دهی- درگ کردن فرمول (نتیجه غلط)

شکل ۲- آدرس دهی درگ کردن فرمول (نتیجه غلط)

 در حالیکه ما میخواهیم سل C1 ثابت باشه و فقط سل های ستون A تغییر کنند. یعنی چیزی مطابق با شکل ۲٫

من این فرمول رو بصورت دستی برای هر سل تایپ کردم. اما اگر حجم داده ها زیاد بود هم امکان این کار وجود داشت؟ پس باید راهی وجود داشته باشه تا بتونیم تصمیم بگیریم در حین درگ کردن، کدام سل ها تغییر کنند و کدام ها تغییر نکنند.

 فرمول مد نظر بعد از درگ کردن

شکل۳- آدرس دهی – فرمول مد نظر بعد از درگ کردن

درگ کردن در اکسل به دو صورت هست. در لحظه یا در ستون حرکت میکنیم (به سمت بالا و پایین) و یا در سطر(به سمت چپ و راست).

وقتی در ستون حرکت میکنیم (بالا یا پایین) فقط ردیف سل حرکت کننده تغییر می کند و وقتی در ردیف حرکت میکنیم (چپ یا راست) فقط ستون سل حرکت کننده تغییر میکند.

پس برای مطلق/نسبی کردن آدرس سل ها در فرمول ها:

  • اول باید ببینیم در کدام مسیر داریم حرکت میکنیم (سطر یا ستون) و چه چیزی در حال تغییر است (شماره ردیف یا نام ستون)؟
  • بعد تصمیم بگیریم که آیا میخواهیم تغییر کند یا ثابت بماند؟

وقتی میخواهیم سطر یا ستون رو فیکس کنیم، باید یک علامت $ پشت شماره ردیف یا نام ستون بذاریم. با این تفاسیر، چهار حالت برای آدرس دهی داریم:

 

سطر آزاد-ستون آزاد

A1

با درگ کردن در ستون، شماره ردیف تغییر میکند
با درگ کردن در ردیف، نام ستون تغییر میکند

سطر مطلق-ستون مطلق

$A$1

با درگ کردن در ستون، شماره ردیف تغییر نمیکند
با درگ کردن در ردیف، نام ستون تغییر نمیکند

سطر آزاد-ستون مطلق

$A1

با درگ کردن در ستون، شماره ردیف تغییر میکند
با درگ کردن در ردیف، نام ستون تغییر نمیکند

سطر مطلق-ستون آزاد

A$1

با درگ کردن در ستون، شماره ردیف تغییر نمیکند
با درگ کردن در ردیف، نام ستون تغییر میکند

حالا برگردیم به همان سوال اول. میخواهیم $ را برای فرمول A2*C1= تنظیم کنیم که با درگ کردن، بدرستی عمل کند. چون در ستون داریم حرکت میکنیم، پس فقط شماره ردیف تغییرمیکنه. حالاما باید تصمیم بگیریم کدوم شماره ردیف تغییر کنده و کدوم ثابت بمونه. چون میخواهیم سل C1 ثابت بمونه و در همه سل ها تکرار بشه (شکل۳)، پس مطابق شکل ۴، $ را پشت ۱ در C1 میگذاریم. اما میخواهیم A2 درسل های بعدی به A3 و A4 و… تغییر کند.پس $ نیازی ندارد.

درگ کردن فرمول (نتیجه درست)

شکل ۴- آدرس دهی – درگ کردن فرمول (نتیجه درست)

نکته:
علامت $ را هم میتونیم مستقیما تایپ کنیم. هم اینکه از کلید F4 استفاد کنیم. وقتی روی آدرس مورد نظر قرار بگیریم، با هر بار F4 زدن، یکی از ۴ حالت آدرس دهی ظاهر میشه.

 

مثال دوم:

میخواهیم یک جدول ضرب ایجاد کنیم. فرمول خیلی ساده هست، A2*B1=. حالا باید طوری آدرس دهی کنیم که با انتقال آن به کل جدول، محاسبات به درستی انجام شود. به شکل ۵ دقت کنید. علامت $ پشت نام A و ردیف ۱ قرار گرفته. چرا؟

 آدرس دهی در جدول ضرب

شکل ۵- آدرس دهی در جدول ضرب

A2*B1= رو در نظر بگیرید. وقتی در ستون حرکت میکنیم، همواره میخواهیم اعداد موجود در ردیف ۱ در بقیه اعداد که در ستون A هستن، ضرب بشن. پس ردیف ۱ را فیکس میکنیم. وقتی هم که در ردیف حرکت میکنیم، میخواهیم عدد موجود در ستون A در بقیه اعداد ردیف ۱ ضرب بشن. پس $ ها رو به این صورت اعمال میکنیم A2*B$۱ا$=. بعبارت کلی، هر جای این جدول ضرب هستیم، میخواهیم عددی در ردیف۱ ضرب در عددی در ستون A بشه. پس ردیف ۱ و ستون A در فرمول باید فیکس بشه.

مبحث آدرس دهی بسیار بسیار مهمه. کسی که میخواد فرمول نویس حرفه ای بشه، حتما باید به این موضوع تسلط کافی داشته باشه. پس علاوه بر تمرین و تکرار دو مثال تشریح شده، حتما مثال های مختلفی رو امتحان کنید تا کاملا ملکه ذهنتون بشه. هر موقع بحث درگ کردن و انتقال فرمول پیش میاد، اول از همه برید سراغ $ و آدرس دهی رو تنظیم کنید بعد شروع کنید به انتقال فرمول.

مشاهده ویدئو آدرس دهی در اکسل

در این ویدئو نحوه استفاده صحیح از $ جهت ایجاد فرمول های درست آموزش داده شده:

[jwp-video n=”1″]

کلیدواژه : مقدماتی
آواتار
145

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

دیدگاه کاربران
  • حامد شمسایی ۷ مهر ۱۳۹۹ / ۹:۰۲ ق٫ظ

    سلام خدمت شما استاد محترم
    وقتتون بخیر
    سوال اول : نحوه اضافه کردن فرمول، در سلولی که از قبل فرمولی در آن نوشته شده رو برام توضیح بدین.
    سوال دوم : داخل همون سلول میخوام اگه عدد ۱ اومد، در سلول A1 مقدار ۱۲۰۰۰ رو نمایش بده و در سلول B1 عدد ۱۰۰۰ رو نشون بده و باز داخل همون سلول اگره عدد ۲ اومد تو سلول A1 عدد ۱۴۰۰۰ نشون بده و تو سلول B1 عدد ۱۵۰۰ رو نمایش بده.
    ممنون و سپاس از لطف شما

    • سامان چراغی ۷ مهر ۱۳۹۹ / ۱۲:۳۹ ب٫ظ

      سلام
      وقت شما هم بخیر
      سوال اول: اگر قصد دارید بخشی از یک فرمول رو تغییر بدید و این کار رو برای چندین سلول میخواید انجام بدید میتونید با استفاده از Find & Replace این کار رو انجام بدید.
      اگر بخشی که دارید اضافه میکنید برای هر سلول متفاوت هست دو راه وجود داره: یا سلول اول اصلاح میشه و با درگ کردن سلول، فرمول به سلول های پایینی منتقل میشه که این نیازمند این هست که ساختار فرمول همه سلول ها یکسان باشه و صرفا با درگ کردن تغییرات آدرس دهی اعمال بشه. در غیر اینصورت باید دستی این کار انجام بشه.
      اگر قصد دارید کل فرمول سلول ها تغییر کنه میتونید همه سلول ها رو انتخاب کنید و در یکی از آنها فرمول جدید رو بنویسید و به جای Enter از ترکیب Ctrl + Enter استفاده کنید.

      سوال دوم: برای این کار در هر یک از سلول های A1 و B1 باید یک تابع IF بنویسید.

  • حسن ربانی ۴ مهر ۱۳۹۹ / ۱۲:۵۹ ب٫ظ

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

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

      سلام
      از ترکیب Format Cell و Data Validation استفاده کنید.
      با استفاده از Format Cell میتونید تعریف کنید که به ازای تعداد رقم های کمتر صفر در سمت چپ قرار بگیره و با Data Validation میتونید محدودیت روی تعداد ارقام وارد شده بذارید.

  • حامد شمسایی ۲ مهر ۱۳۹۹ / ۱۱:۱۵ ق٫ظ

    سلام خدمت استاد محترم:
    وقتتون بخیر
    سوال اول : نحوه اضافه کردن فرمول، در سلولی که از قبل فرمولی در آن نوشته شده رو برام توضیح بدین.
    سوال دوم : داخل همون سلول میخوام اگه عدد ۱ اومد، در سلول A1 مقدار ۱۲۰۰۰ رو نمایش بده و در سلول B1 عدد ۱۰۰۰ رو نشون بده و اگر عدد ۲ اومد تو سلول A1 عدد ۱۴۰۰۰ نشون بده و تو سلول B1 عدد ۱۵۰۰ رو نمایش بده.
    ممنون و سپاس از لطف شما

    • سامان چراغی ۲۲ دی ۱۳۹۹ / ۱۱:۳۶ ق٫ظ

      سلام
      وقت شما هم بخیر
      جواب سوال اول: اگه میخواید فرمولی که در یک ستون درگ شده رو تغییر بدید کافیه فرمول جدید رو به سلول اول ستون اضافه کنید و دوباره درگ کنید. اگر فرمولتون در جاهای مختلف پخش شده میتونید با استفاده از Find & Replace این کار رو انجام بدید.
      جواب سوال دوم: برای اینکه مقدار یک سلول رو بر اساس محتویات سلول دیگه بدست بیارید میتونید از تابع IF استفاده کنید.

  • رضا ۲ مهر ۱۳۹۹ / ۱۰:۲۸ ق٫ظ

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

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

      سلام
      بهترین راه اینه که همه اعداد رو از شیت های مختلف به شیت سوم منتقل کنید و با استفاده از Conditional Formatting موارد تکراری رو مشخص و فیلتر کنید، ردیف های غیر تکراری که رنگ نشده اند رو حذف کنید و نهایتا روی اعداد باقیمانده Remove Duplicates بزنید که لیست اعداد تکرار شده رو داشته باشید.

  • مجید نیک نخش ۲۹ شهریور ۱۳۹۹ / ۱:۲۲ ق٫ظ

    با سلام :
    من یک جدولی دارم که ستون های A, B شامل دو شرح (شماره کارمندی و نام خانواده گی ) وسطر ۱و۲ از ستون C دو شرح دیگر (سطر اول کد و سطر دوم شرح کد) و بقیه سطر و ستون ها داده دها یم چگونه از Pivot Table استفاده کنم

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

      سلام
      بهتره که داده های هر ستون از یک جنس باشه تا بتونید از Pivot Table استفاده کنید.

  • حسن ۲۰ شهریور ۱۳۹۹ / ۱:۱۷ ق٫ظ

    باسلام وخسته نباشید
    من می خوام یک جدول با اکسل درست کنم که در حین وارد کردن عدد یا حروف مثلا اگر به سلول a1 رسید بعد از درج عدد در اون و زدن اینتر به سلولی که براش تعریف می کنم بره و اونجا تایپ کنه مثلا بره به a5 وزمانیکه a5 رو تایپ کردم با زدن اینتر مثلا برگرده به سلول a3 اگه لطف کنین روش اینکار رو برام توضیح بدین ممنونتون می شم.

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

      درود بر شما
      کدنویسی باید انجام بدید که عملیات select انجام بشه

  • محمد ۲۹ مرداد ۱۳۹۹ / ۷:۵۸ ق٫ظ

    سلام ممنون از سایت با محتوای عالی چه جور میشه آدرس دهی به یک ستون از یک table هم در درگ کردن تغییر نکنه؟

  • mehdi ۱ مرداد ۱۳۹۹ / ۲:۰۱ ب٫ظ

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

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

      درود بر شما
      برای اینکه شروع قوی داشته باشید و زمانتون صرفه جویی بشه، دوره اکسل و شروع حرفه ای پیشنهاد میکنم
      https://excelpedia.net/product/start-excel/

  • مسعود ۳۱ تیر ۱۳۹۹ / ۸:۲۴ ق٫ظ

    سلام وقت بخیر
    چجوری میشه هنگام درک کردن بصورت زیر طبق الگوی نوشته شده درک انجام بشه ۵۱ اختلاف طوی درک کردن باشه؟؟
    مثلا من دارم A13 هنگام درک کردن سلول بعدی بشه A115 و همینجور تا آخر
    A64

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

      درود
      از ترکیب تابع indirect و address استفاده کنید
      و بسازید ادرس مورد نظر رو

  • محسن ۳۱ تیر ۱۳۹۹ / ۸:۱۸ ق٫ظ

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

    راهنمایی لطفا

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

      درود
      ماکرو ضبط کنید و کد مربوطه رو ببینید و در صورت نیاز ویرایش کنید

      • محسن ۱ مرداد ۱۳۹۹ / ۸:۳۲ ق٫ظ

        سلام مجدد

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

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

          این نیاز به کدهای پیشرفته تری داره که از فایل بسته بخونه
          متاسففانه الان اموزش اماده ندارم که ارائه کنم
          باید جستجو کنید

          • محسن ۲۵ مرداد ۱۳۹۹ / ۹:۰۱ ق٫ظ

            بله دقیقا
            خودمم دنبالش گشتم ولی نتیجه مطلوبی حاصل نشد!
            بهر حال ممنون

ارسال دیدگاه

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

توسط
تومان