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

دیدگاه کاربران
  • f ۲۷ فروردین ۱۳۹۷ / ۹:۳۸ ق٫ظ

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

  • صادق ۱۵ فروردین ۱۳۹۷ / ۴:۳۸ ب٫ظ

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

  • صادق ۱۵ فروردین ۱۳۹۷ / ۳:۵۱ ب٫ظ

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

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

      درود بر شما
      برای سلول نمیشه این کار و کرد
      نهایتا میتونید کنترلی انجام بدید که هر سلول تعداد رقم مشخصی رو بگیره و با TAB بین سل ها حرکت کنید
      مگر اینکه تکست باکس بذارید و کد بنویسید

  • صادق ۱۴ فروردین ۱۳۹۷ / ۴:۱۳ ب٫ظ

    ممنونم از راهنماییتون ولی خانم خاکزاد چون سلول A1 و B1 دارای فرمول هستند این فرمول در سلول C1 جواب درست نمیده

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

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

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

      شاید هم خروجی هاتون فرمت سل خاصی دارن…

  • صادق ۱۴ فروردین ۱۳۹۷ / ۳:۲۳ ب٫ظ

    با سلام روزتون بخیر
    خانم خاکزاد من یک فایل اکسل دارم که در سلول A1 فرمول قرار دادم که یک عدد به من میده درون سلول B1 هم با فرمول یک عدد دیگر به من میده حالا میخوام درون سلول C1 این دو عدد را با هم مقایسه کنم که اگر با هم برابر بودند جواب بشه OK و اگر برابر نبودند جواب بشه NO ولی فرمول سلول C1 جواب درست به من نمیده .ممنون میشم راهنمایی بفرمایید

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

      درود بر شما
      باید If بنویسید:

      =If(A1=B1,"OK","NO")
      

      جهت مطالعه بیشتر لینک زیر رو بخونید:
      https://excelpedia.net/if-function/

  • فرخ ۱۳ فروردین ۱۳۹۷ / ۰:۱۱ ق٫ظ

    سلام . وقت بخیر
    خانم خاکزاد من می خواهم نتیجه یک فرمول در Sheet1 را یک سلول در Sheet2 ببینم ..
    فرض کنید یک دفتر کل .. مجموع یک ستون را در سلول Sheet دیگری ببینم ..
    لطفا راهنمایی بفرمائید ..

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

      درود بر شما
      کافیه در sheet2 قرار بگیرید، بزنید )sum= حالا روی sheet1 کلیک کرده و ستون مورد نظر رو انتخاب کنید. پرانتز بسته و Enter
      موفق باشید

  • محمد ایزدی ۱۴ بهمن ۱۳۹۶ / ۳:۴۳ ب٫ظ

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

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

      سلام
      سوال خیلی واضح نیست که آیا این اطلاعات وابسته به چیزی هم هستن؟ ترتیبشون چطور؟
      اگه بصورت ثابت باشه، به گذاشتن = انجام میشه

      به هر حال این آموزش رو هم بخونید:
      https://excelpedia.net/excel-row-to-column/

      • حامد ۱۶ بهمن ۱۳۹۶ / ۳:۲۴ ب٫ظ

        کلاس اموزش ندارید

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

          سلام
          کلاس های حضوری نینجا برگزار میشه که نزدیکترین دوره اوایل سال ۹۷ خواهد بود . میتونید سوابق دوره، سرفصل و نظرات کاربران رو در لینک زیر ببینید:
          https://excelpedia.net/excel-ninja/

          همچنین همین دوره، بصورت غیرحضوری (ویدئویی) هم ارائه میشه:

  • سعيد ۱ بهمن ۱۳۹۶ / ۱:۵۰ ب٫ظ

    سلام
    وقت بخیر.ممنون بابت مطلب خوبتون
    یک سوال داشتم
    من یک فایل اکسل که دارای ردیف های زیادی است دارم . وقتی که آن را باز می کنم مطابق معمول در سلول A1 است ولی من میخواهم بروم A1200 ! چگونه می تونم بدون اینکه نوار پیمایش را می کشم با یک دکمه یا یک میانبر به آنجا بروم.
    وقتی Ctrl+End ‌را میزنم میرود آخر آخر …
    ممنون میشم راهنمایی کنید

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

      سلام
      هم میتونید در Name Box سلول مورد نظر رو تایپ کنید و اینتر بزنید
      هم میتونید در (Go To (Ctrl+G آدرس سلول مورد نظر رو تایپ کنید و اوکی کنید.
      لینک زیر رو حتما بخونید
      https://excelpedia.net/range-selection/#5

      • سعيد ۲ بهمن ۱۳۹۶ / ۹:۴۷ ق٫ظ

        ممنون از وقتی که گذاشتید.
        من خوب توضیح ندادم.
        این فایلی که عرض کردم، هر روز آبدیت می شود و به سلولها اضافه می شود. امروز ۱۲۰۰ است و فردا ممکنه مثلا ۱۲۸۴ شود.
        میخواستم ببینم دستور یا فرمولی هست که مثلا روی آن کلیک کنیم و برود آخرین سلول خالی یا ردیف خالی .
        مثلا تا سلول A1284 پر شده است. اکسل را می بندیم و فردا صبح که مجددا آمدیم روی دکمه ای کلیک کنیم و یا دستوری را اجرا کنیم و چون نمی دانیم آخرین خانه خالی کدام است خودش اتوماتیک برود روی خانه خالی که A1285 است.
        یک دنیا ممنون و سپاسگزارم

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

          خواهش میکنم
          میشه براش کد نویسی کرد
          اما وقتی میتونید از کلید میانبر استفاده کنید دلیلی برای این کار نیست.
          کافیه کلید Ctrl و جهت پایین رو بزنید.
          میره روی اخرین سلول پر.
          زمانش معادل اجرای کدی هست که می نویسید

          • سعيد ۲ بهمن ۱۳۹۶ / ۱:۲۳ ب٫ظ

            ایول ….
            درست شد. با کلید کنترل و جهت پایین !
            ممنون خانم مهندس . سپاس فراوان

  • مرتضی ۱۱ دی ۱۳۹۶ / ۱:۱۰ ب٫ظ

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

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

      سلام
      قاعده اینه که اول $ تعیین بشه و بعد درگ بشه.
      در واقع برای بعد از درگ کردن $َ معنی نداره….

      • مرتضی ۱۲ دی ۱۳۹۶ / ۱۲:۴۶ ب٫ظ

        ممنون

  • محسن ۲۴ آذر ۱۳۹۶ / ۱۰:۳۶ ق٫ظ

    با سلام. سلول حاوی آدرس ((=’ریزمتره منهولها’!J609)) از یک شیت ((کاربرگ پروژه ۱ )) کپی و در سلول متناظر در شیت متناظر از ((کاربرگ پروژه ۲)) پیست میکنم و آدرس به این ترتیب می شود ((='[۱ پروژه.xls]ریزمتره منهولها’!J609)) و بعد از بستن ((کاربرگ پروژه ۱ )) آدرس به ((=’E:\[1 پروژه.xls]ریزمتره منهولها’!J609)) تغییر میکند حال چگونه میتوان کپی سلول حاوی آدرس در کاربرگ دیگر را انجام داد طوری که آدرس به شیت جدید لینک شود نه لینک مرجع ؟
    با تشکر و سپاس فراوان

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

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

      • سحرخیز ۱۷ مرداد ۱۴۰۲ / ۱:۵۵ ب٫ظ

        سلام- دقیقا مشکلی که بنده هم دارم و براتون نوشتم در تهیه صورت مالی همین مشکل محسن هست.

ارسال دیدگاه

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

توسط
تومان