شماره پشتیبانی اکسل پدیا در بله: 09914083023
سبد خرید
0

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

بازگشت به فروشگاه
تمام دسته ها
  • تمام دسته ها
  • ابزارها
  • افزونه ها
  • اکسل مدیا
  • Power BI
  • Power Pivot
  • Power Query
  • توابع اکسل
  • دسته‌بندی نشده
  • دیده بان
  • گوگل شیت
  • مسائل کاربردی
  • معرفی کتاب
  • نمودار ها
  • وی بی - ماکرو

تابع Address در اکسل و نکات آن

تابع Address در اکسل
۴.۶/۵ - (۲۳ امتیاز)

تابع کاربردی Address

تابع Address در اکسل یکی از توابع خیلی پرکاربرد هست. خروجی این تابع آدرس یک سلول هست و از این تابع برای ساختن محدوده ها استفاده میشه. برای این مسئله باید محدوده ها رو بسازیم. برای اینکه کاربرد این تابع رو ببینیم. لازمه اول آرگومان های این تابع رو معرفی کنیم:

تابع Address پنج آرگومان داره:

Row_Num: شماره ردیف آدرس سلول مورد نظر رو نشون میده. جنس این آرگومان عددی است.

Col_Num: شماره ستون آدرس سلول مورد نظر رو نشون میده. جنس این آرگومان عددی است.

[Abs_Num]: مطلق و نسبی بودن یک سلول. $ در آدرس یک سلول رو تعیین میکنه. از ۱ تا ۴. هر عدد، یکی از حالت ها مطلق و نسبی بودن رو نشون میده. در صورتیکه این آرگومان تعیین نشه بصورت پیش فرض عدد ۱ یعنی Absolute یا کاملا مطلق در نظر گرفته میشه.

مطلق و نسبی بودن یک سلول

[A1]: نحوه آدرس دهی سلول بصورت A1 یا R1c1. این آرگومان بصورت ۰ و ۱ هست. اگر این آرگومان تعیین نیشه، بصورت پیش فرض عدد ۱ یا همون حالت A1 برای آدرس دهی تعیین میشه.

[Sheet_Text]: اسم شیت رو تعیین میکنه. در صورتی که تعیین نشه، آدرس سلول بدون نام شیت خواهد بود.

همونطور که می بینید سه آرگومان آخر داخل براکت [ ] هستن و این یعنی که این آرگومان ها اختیاری هستن.

در ادامه با شرح مثال، کاربردهای این تابع رو میبینیم.

مثال اول

فرض کنید ۴ شیت داریم که میخوایم اطلاعات موجود در سلول D10 همه شیت ها رو یکجا جمع کنیم. برای اینکه با یک فرمول بتونیم خروجی مد نظر رو داشته باشیم، از تابع Address استفاده میکنیم:

=Address(10,4,1,1,A1)

شرح فرمول:

ردیف ۱۰ و ستون ۴ یعنی سلول D10 ، دو آرگومان بعدی که ۱ در نظر گرفته شده یعنی آدرس دهی بصورت مطلق و بصورت نام ستون باشه یعنی $D$۱۰. آرگومان آخر هم که اسم شیت هست و از سلول A1 گرفته شده. (شکل ۱)

فراخوانی سلول مشابه از شیت های مختلف

شکل ۱- تابع Address در اکسل – فراخوانی سلول مشابه از شیت های مختلف

در نهایت هم آدرس های ایجاد شده در تابع Indirect قرار میدیم که بصورت غیرمستقیم به محتوای آدرس سلول های بدست آمده اشاره بشه.

نکته:
فقط از طریق تابع Indirect هست که میتونیم به آدرس های خروجی تابع Address دسترسی پیدا کنیم. در واقع خروجی تابع Address حکم متن داره  و تا زمانیکه در تابع Indirect قرار نگیره، خاصیت رنج (Range) نداره.

 

مثال دوم

در شیتی به نام “Sheet2” یک سری داده در ردیف اول ثبت شده است. حالا در یک شیت دیگه میخوایم داده موجود در سلول اول رو با تک تک سلول های بعدی جمع بزنیم. یعنی در یک سلول نوشته شده =A1+B1. میخواهیم با درگ کردن به سمت پایین، بجای اینکه شماره ردیف B1 اضافه بشه، شماره ستونش اضافه بشه. یعنی سلول بعد بشه =A1+C1، بعدی =A1+D1 و …

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

قسمت دوم فرمولچون میخوایم با درگ به سمت پایین، شماره ردیف ثابت باشه و فقط شماره ستون زیاد بشه، در آرگومان Row_Num عدد ۱ میذاریم و در قسمت Col_Num تابعی استفاده میکنیم که با درگ به سمت پایین، یکی یکی افزایش پیدا کنه. پس از تابع Row() استفاده میکنیم. خروجی تابع Row(B2) عدد ۲ هست و همینطور الی آخر.

حالا که قسمت دوم فرمول رو ساختیم، کافیه با قسمت اول که A1 ثابت هست، ترکیب کنیم و درگ کنیم به سمت پایین. یعنی:

=$A$1+Indirect(Address(1,Row(B2),”Sheet2”))

با این کار، با درگ به سمت پایین، آرگومان Col_Num یکی یکی اضافه میشه و این هر بار یعنی B1, C1, D1 و …

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

پیشنهاد میکنم مقالات زیر رو هم نگاه کن که ترکیبات بیشتری از این تابع یاد بگیری:

تابع Offset و آغاز ایجاد داشبورد

ساخت لیست های وابسته

134

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

دیدگاه کاربران
  • Nader ۲۴ دی ۱۴۰۳ / ۰:۵۹ ق٫ظ

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

    بر روی سلولی که قبلا داده وارد شده است دابل کلیک میکنم و سپس کلید اینتر رو میزنم و از سلول مورد نظر خارج میشم (ممکن است تغییرات داده شود و یا تغییراتی داده نشود)، از طریق کدنویسی VB در قسمت “Private Sub Worksheet_Change(ByVal Target As Range)” چگونه میتوانم آدرس یا موقعیت سلول جاری (کلیک شده) رو پیدا کنم؟ یعنی MsgBox بهم نشون بده که سلولی که من دابل کلیک کرده و بعد خارج شده ام مثلا N13 است.

    پیشاپیش از تمامی الطاف شما تشکر میکنم

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

      سلام
      اینو بزنید
      MsgBox Target.Address

  • محمدرضا شریفی خواه ۲۷ تیر ۱۴۰۲ / ۱۰:۴۶ ق٫ظ

    با سلام
    من یک فایل دارم با حدود ۳۰ شیت که هر شیت یک سری اطلاعات تکراری برای هر مدرسه در هر استان داره حالا می خوام با تعریف کد برای هر استان در یک شیت جدا اطلاعات را برای من فراخوان کنه از فرمول ترکیبی IFERROR و VLOOKUP استفاده کردم اما در برخی موارد می خوام قبل از فراخوان، ردیف های مخصوص در یک ستون را جمع ببنده بعد برام نمایش بده مثلا در ستون ۶۷ ابتدا ردیف های A4 ,A8 ,A12,A16 ,…. را ابتدا جمع ببنده بعد در شیت مورد نظر نمایش بده در ضمن از فرمول زیر استفاده کرده ام
    =IFERROR(VLOOKUP($E$2,قم!$A:BQ,67,FALSE),””)

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

      درود بر شما
      خب اینکه شما اینو میخواید باید یک منطق و فرآیند یا مثلا ظرطی داشته باشه که بفهمه چیا رو جمع بزنه!
      در کل خیلی بستگی به ساختار داره
      اگر مسلط هستید با پاورکوئری تجمیع کنید و بعد محاسبات گزارشگیری
      اگر نه جمع رو در هر شیت حساب کنید بعد فراخوان یکنید

  • Nadia ۱۴ تیر ۱۴۰۲ / ۱۲:۰۴ ب٫ظ

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

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

      درود
      ترکیب match و min و استفاده از نتیجه در address

  • mohsen ۷ تیر ۱۴۰۲ / ۷:۴۳ ب٫ظ

    سلام در کد زیر میخوام که عدد داخل سلول G1 خوانده بشه که متغیر هم هست و بر اساس اون عدد محدوده مشخص بشه یعنی اگر مثلا G1= 10 بود محدوده بشه C1:C10 و اگر G1 =20 بود محدوده بشه C1:c20 و به همین ترتیب تا الی اخر / چطور میتونم اخر کد بجای G1 یک تابع یا روش دیگه داشته باشم که محدوده رو متغیر کنه ؟

    Range(“B1”).Copy Destination:=Worksheets(“Sheet1”).Range(“C1:C(G1)”)

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

      درود،
      میتونید از تابع Resize استفاده کنید:

      Range("B1").Copy Worksheets("Sheet1").Range("C1").Resize(Range("G1"), 1)
      
  • m ۱۱ شهریور ۱۴۰۱ / ۱۰:۳۱ ق٫ظ

    سلام
    فرق address با offset و با Indirect در چیست؟

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

      درود
      indirect که ارجاع میده به خروجی ادرس
      address هم که ادرس میسازه و بنا به شرایط خودش و ارگومانهای خودش

      offset هم میتونه محدوده های متجرک رو در نظر بگیره

  • آوش ۲۴ فروردین ۱۴۰۱ / ۷:۲۳ ب٫ظ

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

    • سامان چراغی ۲۵ فروردین ۱۴۰۱ / ۱۰:۰۷ ق٫ظ

      سلام
      اگر هنگام قفل کرد شیت رمز رو تعیین نکنید این اتفاق میفته، در غیر اینصورت با زدن دکمه Unprotect حتما باید رمز وارد بشه.
      ضمن اینکه شکستن این رمز چند ثانیه بیشتر زمان نمیبره.

  • امیر ۲۶ بهمن ۱۴۰۰ / ۱۰:۵۹ ق٫ظ

    سلام و خسته نباشید .
    در شیت اول از ردیف ۱ تا ۱۰۰ تاریخ رو درج کردم (مثلاً ۱۴۰۰/۱۱/۳۰تا ۱۴۰۱/۰۳/۰۹ ) . می خوام در شیت دوم هر یک از این تاریخ ها در یک صفحه نوشته شوند . باید چجوری از فرمول استفاده کنم نه با نسبی می تونم حلش کنم نه با مطلق

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

      درود بر شما
      یک پیوت بگیرید از روش
      دیت رو بذارید توی فیلتر
      و بعد از قسمت option گزینه report filter page بزنید

  • محمد ۱ اسفند ۱۳۹۹ / ۸:۵۸ ب٫ظ

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

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

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

      =MAX(IF(A2:A12=0,ROW(A2:A12),""))
      
      

      این فرمول شماره ردیف آخرین سلولی که حاوی صفر هست رو میده
      میتونید بذارید توی تابع Address

  • امیر حسین محمدزاده ۱۱ دی ۱۳۹۹ / ۱۲:۳۰ ب٫ظ

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

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

      درود
      اگر اطلاعات رو داخ یک جدول داشته باشید میتونید با توابع جستجو مثل vlookup, match, index جستجوی مورد نظر رو انجام بدید

  • عابدی ۲۳ آذر ۱۳۹۹ / ۵:۵۷ ب٫ظ

    سلام چطوری میشه نام یک شیت را در یک سل با آدرس دهی آورد.

    • سامان چراغی ۲۴ آذر ۱۳۹۹ / ۱۰:۴۵ ق٫ظ

      سلام
      کافیه با استفاده از تابع Cell خصوصیت FilePath رو بدست بیارید که آدرس فایل به همراه نامه شیت هست.
      بعد با استفاده از توابع Right و Find میتونید نام شیت رو که بعد از ] قرار گرفته دربیارید.

ارسال دیدگاه

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

توسط
تومان