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

دیدگاه کاربران
  • پرویز ۵ مهر ۱۴۰۱ / ۸:۳۷ ق٫ظ

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

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

      درود
      اصلا متوحه نشدم!
      فکر میکنم بهتره با یک مثال سوال رو ساده سازی کنید

  • علی ۳ شهریور ۱۴۰۱ / ۱:۴۳ ق٫ظ

    من در شیت ۱ یک جدول ۲ ستونی از اعداد دارم ، در شیت۲ میخوام تمام اطلاعات شیت ۱ وارد شیت ۲ بشه , یعنی اعداد ستون A رو در ستون A شیت۲ بزاره و B ها رو در ستون B شیت ۲..
    بطوریکه در شیت ۲ میخوام به فرض اعداد ستون A رو مثلا ۱۵ رقم نمایش بده که اگر از ۱۵ رقم کمتر داشت اول اعداد رو با ضفر پر کنه و اعداد ستون B رو مثلا ۲۵ رقم که اونم اگه کم داشت با صفر پر کنه
    ممنون میشم راهنمایی کنید./.

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

      درود
      اگر خلاصه سوال اینه که داده ها برسن به تعداد کاراکتر مورد نظر، کافیه از تابع تکست استفاده بشه
      =text(A1,”000000000000000″)

      این مثال برای ۱۵ رقم
      برای ۲۵ هم کافیه همین تعداد صفر رو بذارید داخل “”

  • رسول خیری ۴ تیر ۱۴۰۱ / ۱۰:۴۵ ق٫ظ

    با سلام
    من میخام در دو سلول a1 , b1 کاراکتر “*” مجاز باشه و اگر سلول a1 این کاراکتر رو داشت دیگه b1 قبول نکنه / باتشکر

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

      درود
      AND(A1=”*”,COUNTA($A$1:$B$1)<=1) این فرمول رو روی سلول A1 قرار بگیرید و در data validation/custom بنویسیدبا همین منطق هم برای سلول B1 بنویسید

  • سعید سراج ۴ اردیبهشت ۱۴۰۱ / ۲:۵۱ ب٫ظ

    با سلام و عرض خسته نباشید—–
    من فاکتور ها رو به صورت تکی تکی وارد کرده و برای هرکدام فایل اکسل جداگانه ونام فایل را شماره فاکتور ذخیره می کنم
    الان میخواهم در یک فایل جداکانه اکسل اطلاعات اصلی فاکتور های تکی تکی را به صورت خودکار وارد بشه….به تور مثال در سلول مبلغ فاکتور =میزنم وادرس سلول مبلغ فاکتور در اکسل دیگر را وارد میکنم و اطلاعات به اکسل دیگر انتقال پیدا میکند
    و میخواهم مثل درست کردن فرمول ها که از گوشه سلول میگیریم و به پایین میکشیم و ادرس سلول ها تغییر می کند و خودکار فرمول ثبت میشود برای این فایل حسابداری اصلی انجام بدهم واطلاعات کلیدی هر فاکتور به صورت خودکار وارد بشه ولی همون سطر کپی میشود و این کار وقت گیر است و باید هر سلول را بهصورت جداگانه در ادرس شماره فاکتور را تغییر دهم تا اطلاعات قاکتور های دیگر بشیند—-ممنون میشم راهنمایی کنید

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

      درود
      برای ادغام کذدن فایل های مشابه و ارخوانی برخی مقادیر از هر فیل یا باید پاورکوئری استفاده کنید
      یا کدنویسی VBA

  • محمد ۲۲ بهمن ۱۴۰۰ / ۱۲:۲۵ ب٫ظ

    چگونه میتوانم دو سول هم نام داشته باشیم یعنی دوسلول a1 در یک شیت داشته باشیم

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

      درود
      نمیشه!
      نامگذاری هم حتی باید یونیک باشه

  • رجال ۹ بهمن ۱۴۰۰ / ۱۰:۲۸ ق٫ظ

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

  • مرتضی ۳ بهمن ۱۴۰۰ / ۶:۰۵ ب٫ظ

    سلام در سلول‌ a2 نوشتم مساوی a1 و به پایین بسط میدهم که در نتیجه در سلول a3 مینویسه مساوی a1 ولی دنبال راهی هستم که وقتی در فرمول به پایین بسط میدهم بجای این که ردیف را عوض کند در سلول a3 بنویسه مساوی با B1 و همینطور در ادامه در سلول A4 بنویسه مساوی با C3 ،یعنی ستون عوض شود و نه سطر،ممنون می شوم کمکم کنید.

  • Fazel ۲۳ دی ۱۴۰۰ / ۶:۵۰ ب٫ظ

    سلام خانم خاکزاد وقت بخیر
    برای اینکه زبانه لیست کشویی همیشه قابل دیدن باشه(نه وقتی که سلول رو انتخاب می کنیم بعد نشون داده بشه) چی کار باید کنم؟
    تشکر

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

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

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

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

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

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

  • جواد اکبران ۱۴ تیر ۱۴۰۰ / ۸:۱۳ ب٫ظ

    با سلام و احترام
    اگر کلی اطلاعات داشته باشیم و فرضا بخواهیم از سلول C1 با فاصله ۱۵ تا به ۱۵ تا مقادیر سلول های ستون c جدا نمایش دهیم چه باید کرد مثلا مقادیر ستون C سلولهای
    C1
    C16
    c31
    c46
    c61
    و…
    را با فاصله ۱۵ تا انتخاب و در ستون دیگری به صورت متوالی نمایش دهیم.

      • جواد اکبران ۱۵ تیر ۱۴۰۰ / ۶:۲۶ ب٫ظ

        با سلام و درود فراوان
        ممنون که وقت گذاشتید و پاسخ دادید ، راهنمایی شما بسیار کارا و مفید بود ، در پناه خداوند همیشه پیروز و تندست باشید.

ارسال دیدگاه

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

توسط
تومان