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

دیدگاه کاربران
  • خمسه ۵ تیر ۱۴۰۰ / ۱:۰۷ ب٫ظ

    سلام
    وقت بخیر
    چه راهی وجود داره که با تعیین یکسری شرایط در سلول ۱، تغییر و یا ثبت اطلاعات در سلول۲ خروجی من باشه؟

    • سامان چراغی ۵ تیر ۱۴۰۰ / ۲:۱۲ ب٫ظ

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

  • مهری ۱۳ اردیبهشت ۱۴۰۰ / ۱۱:۴۹ ق٫ظ

    سلام وقت بخیر
    برای اینکه بدونیم از مقداریک سل اکسل کجاها و برای محاسبه چه سل هایی استفاده شده باید چیکار کنیم. برای مثال از سل A1 در محاسبه مقدار سل های A3، G4و… استفاده شده باشه (که ما نمیدونیم). تابعی رو میخوایم که سلهای A3 G4و… رو برای سل A1 مشخص کنه.

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

      درود
      هم در تب formula و هم در Go to / Special از گزینه های Precedents و Dependents میتونید استفاده کنید

  • Yasi ۱۸ فروردین ۱۴۰۰ / ۷:۲۶ ب٫ظ

    سلام آدرس دهی دو بعدی در اکسل چیه لطفا یکی کمکم کنه؟

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

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

  • بهروز ۳ اسفند ۱۳۹۹ / ۱۲:۵۸ ب٫ظ

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

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

      درود
      کنارش یک زبان باز میشه، گزینه Stop automatically creating calculated columns
      میاد
      بزنید که کنسل بشه

  • محمدرضا ۱۱ بهمن ۱۳۹۹ / ۱۰:۱۶ ق٫ظ

    سلام
    وقتتون بخیر
    تشکر بابت مطالب مفید و کاربردی
    اطلاعات موجود:
    داخل شیت اول، ستون اول تعدادی کد کالا وارد شده و در همان شیت، ستون دوم موجودی این کالاها
    داخل شیت دوم، در ستون اول و دوم کد و موجودی درخواست های هر روز ثبت میشه
    سوال:
    روش کنترل موجودی، که هنگام ثبت اطلاعات در شیت دوم، اگر درخواست های ثبت شده از موجودی ثبت شده در شیت اول بیشتر شد، مثلاً رنگ سلول کد در شیت دوم قرمز شود و یا روش دیگری

    ممنون از همکاریتون

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

      سلام
      وقت بخیر
      کافیه در قسمت فرمول نویسی Conditional Formatting از ترکیب توابع Sumif و IF استفاده کنید.

  • فرح انگیز ۱۹ دی ۱۳۹۹ / ۲:۵۹ ب٫ظ

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

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

      درود
      میتونید با توابع istext, isnumber مشخص کنید جنس داده ها رو و بعد فیلتر کنید و کات کنید و جابجا کنید

  • شادشاد ۴ دی ۱۳۹۹ / ۱۱:۳۹ ب٫ظ

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

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

      درود
      هم میتونید از پیوت استفاده کنید و داده هایی که مقدار دارن رو نمایش بدید
      هم فمرول نویسی (جستجوی موارد تکراری) که شرط شما اینجا ر بودن سلول سفارش هست

  • فرهاد ۳ دی ۱۳۹۹ / ۹:۴۰ ب٫ظ

    سلام
    برای کد نویسی شمارش سلول پر در textbox در محیط vba چگونه باید نوشته شود؟
    ممنون

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

      سلام
      کافیه خصوصیت text کنترل textbox رو مساوی تابع Counta محدوده مورد نظر بذارید.

  • حسين ۱۰ آذر ۱۳۹۹ / ۱۱:۰۴ ب٫ظ

    سلام به شما
    در هنگام فرمول نویسی وقتی یک سل را انتخاب میکنم مثلا G6، به جای G6 عبارت [@Column6] در فرمول میزنه
    البته فرمول درست کار میکنهچطور میتونم به حالت اول برگردونم و فقط G6 رو برام بزنه؟

  • حمیدبیات ۱۰ آذر ۱۳۹۹ / ۲:۴۰ ب٫ظ

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

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

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

ارسال دیدگاه

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

توسط
تومان