سبد خرید
0

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

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

لینک فایل اکسل به خارج از شیت

ارتباط دو شیت در اکسل
۴.۴/۵ - (۱۹ امتیاز)

ارتباط دو شیت در اکسل

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

در واقع این لینک خارجی چیزی نیست جز ارجاع دادن به سلول یا محدوده ای غیر از شیت فعلی (شیت دیگه یا فایل دیگه). مهم ترین ویژگی این مسئله اینه که با تغییر داده های شیت یا فایل مرجع، نتیجه در فایل مقصد تغییر میکنه.

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

  • ارجاع به شیت دیگر ( ارتباط دو شیت در اکسل )
  • ارجاع به فایل دیگر
  • ارجاع به یک محدوده نامگذاری شده
  1. چگونگی ارتباط دو شیت در اکسل

برای ارجاع دادن به یک سلول یا یک محدوده از یک شیت دیگه از همون فایل اکسل باید الگوی زیر رو رعیات کنیم. یعنی بعد از اسم شیت، علامت تعجب (!) و سپس آدرس سلول گذاشته میشه. یعنی:

لینک به یک سلول از شیت دیگه:

Sheet_name!Cell_address

نمونه : =Sheet1!A1

لینک به یک محدوده از شیت دیگه:

Sheet_name!First_cell:Last_cell

نمونه : =Sheet1!A1:A10

نکته خیلی مهم
اگر اسم شیت مورد نظر Space یا کاراکترهای غیر حروف الفبا داشته باشه، باید اسم شیت داخل یک سینگل کوتیشن ‘ گذاشته بشه مطابق با نمونه:   Project Milestones’!A1*10′

 

موقعی که میخوایم به سلول های یک شیت دیگه ارجاع بدیم، تایپ کردن آدرس محدوده کار مشکل و پر خطایی ممکنه باشه. یک راه ساده تر اینه که در حین نوشتن فرمول مورد نظر، سلول های شیت مقصد رو انتخاب کنیم. فرض کنید میخواهیم در شیت income، محدوده A1:B5 از شیت expense رو جمع بزنیم. برای این کار مراحل زیر رو طی میکنیم:

  • تابع مورد نظر رو نوشته و پرانتز رو باز میکنیم.
  • موقع انتخاب محدوده، روی تب اسم شیت مورد نظر کلیک کرده و محدوده دلخواه رو انتخاب میکنیم.
  • پرانتز رو بسته و Enter را میزنیم. به تصویر زیر دقت کنید:

ارتباط دو شیت در اکسل - لینک به سایر شیت ها

  1. چطور به یک سلول یا محدوده از فایل دیگر، لینک برقرار کنیم

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

  • ارجاع دادن به یک فایل اکسل باز

وقتی که فایل مرجعی که قراره اطلاعات از آن فراخوانی بشه، باز باشه، آدرس لینک شامل نام فایل (workbook) به همراه پسوند داخل براکت [ ]، به همراه نام شیت و نام سلول (با الگوی بالا) هست. به الگوی نمایش داده شده دقت کنید:

[Workbook_name]Sheet_name!Cell_address

مثلا فرض کنید میخوایم جمع محدوده B2:D50 در شیت farvardin از فایلی به نام sale حساب کنیم. الگو بصورت زیر خواهد بود:

=SUM( [Sale.xlsx]Farvardin! $B$2:$D$50 )

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

 

  • ارجاع دادن به یک فایل بسته

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

Drive:\ folder\ [Workbook_name]Sheet_name!Cell_address

مثلا فرض کنید میخوایم جمع محدوده B2:D50 در شیت Farvardin از فایلی به نام sale حساب کنیم که فایل sale بسته است. الگو بصورت زیر خواهد بود:

=SUM(‘D:\reports\[Sale.xlsx]Farvardin’!$B$2:$B$50)

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

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

 

  1. چطور به یک محدوده نامگذاری شده، لینک برقرار کنیم

علاوه بر ارجاع به یک سلول یا محدوده (Range) میتونیم به محدوده های نامگذاری شده هم ارجاع بدیم. برای این کار کافیه بجای اسم سلول یا محدوده مورد نظر، نام تعیین شده رو تایپ کنیم.

فرض کنید محدوده B2:B50 شیت farvardin از فایل Sale رو گذاشتیم Sale_Farvardin مطابق شکل ۱.

نامگذاری محدوده

شکل ۱- ارتباط بین شیتها در اکسل – نامگذاری محدوده

نکته:
بصورت پیش فرض، همه محدود های نامگذاری شده در اکسل در محدوده Workbook تعیین میشن، مگر اینکه از قسمت Scope یک شیت دیگه انتخاب کنیم. پیشنهاد ما استفاده از حالت workbook هست (مگر اینکه دلیلی مشخصی برای استفاده از worksheet داشته باشید). توجه کنید که محدوده اهمیت خیلی زیادی داره چون کمک میکنه به نرم افزار که نام تعیین شده رو تشخیص بده.

 

حالا برای اینکه از این نام در شیت یا فایل دیگه بتونیم استفاده کنیم، الگوی کلی بصورت زیر خواهد بود:

=Function(name)

اما باید به یک نکته توجه داشته باشیم. اگر محدوده (Scope) نام مورد نظر Workbook هست، که فقط کافیه نام محدوده رو داخل تابع تایپ کنیم.

=SUM(Sale_Farvardin)

اما اگر محدوده در سطح شیت هست (یکی از شیت های فایل مورد نظر)، باید نام شیت رو هم در فرمول بیاریم:

=SUM(Farvardin!Sale_Farvardin)

اگر هم بخوایم به یک فایل خارج از این فایل ارجاع بدیم، بصورت زیر خواهد بود:

=Function(Workbook_name!name)

همه مواردی که در قسمت workbook تشریح شد برای ارجاع به محدوده نامگذاری نیز برقرار هست و فقط کافیه بجای آدرس سلول یا محدوده (Range) از نام مورد نظر استفاده کرد.

زمانی که فایلی که حاوی لینک هست رو باز میکنیم، پنجره ای ظاهر میشه که آیا میخواید لینک ها بروز شوند یا خیر؟ (مطابق شکل ۲)

با زدن گزینه Update نتایج سلول هایی که حاوی لینک هستن بروز خواهد شد.

ارتباط دو شیت در اکسل - پیغام بروزرسانی لینک ها

شکل ۲- ارتباط بین شیتها در اکسل – پیغام بروزرسانی لینک ها

برای مشاهده همه لینک هایی که در یک فایل وجود داره، از مسیر زیر روی Edit Link کلیک میکنیم. از پنجره نمایش داده شده در شکل ۳ همه لینک های موجود در فایل قابل مشاهده هستند.

Data/ Connections/ Edit links

پنجره نمایش لینک های استفاده شده در یک فایل

شکل ۳- پنجره نمایش لینک های استفاده شده در یک فایل

خب در این آموزش با استفاده از سه روش ارجاع دادن به سلول ها و محدوده های مختلف خارج/داخل فایل، و ایجاد ارتباط بین قسمت های مختلف یک شیت ( ارتباط دو شیت در اکسل ) یا فایل رو تشریح کردیم. این موضوع کاربرد زیادی میتونه داشته باشه برای زمانی که داده ها در فایل های جداگانه ذخیره میشن و بخش گزارش یا نرم افزار خروجی، در فایلی جداگانه. حتما سعی کنید فایلی رو با این شرایط تهیه کنید و کاربرد مطالب ارائه شده رو بررسی کنید.

در انتها حتما مقاله مدیریت لینک ها در اکسل رو نگاه کنید.

کلیدواژه : نام گذاری محدوده
آواتار
145

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

دیدگاه کاربران
  • فرشاد ۱۳ آذر ۱۳۹۸ / ۱۱:۱۰ ق٫ظ

    درود
    یه سوال فنی دارم
    لطفا اگه میدونید حتما جوابتون رو باهام درمیون بذارید
    با سپاس فراوان

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

    از VBA هم نمیخوام استفاده کنم

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

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

      • فرشاد ۱۴ آذر ۱۳۹۸ / ۱:۱۷ ب٫ظ

        ممنون از پاسختون
        یه سوال دیگه
        حجم فایلم خیلی بزرگه
        بالای ۳۰ هزار ردیف دارم
        VBA سرعت اکسل رو پایین نمیاره ؟؟؟

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

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

  • ابراهیم ۱۲ آذر ۱۳۹۸ / ۱۲:۰۲ ب٫ظ

    سلام.ممنون از مطالب مفیدتون.
    من فایل اکسلی درست کردم که در یک شیت جنسهای وارده به انبار را وارد کردم و در شیت دیگر فروش و در شیت سوم موجودی انبار.میخواستم ببینم چطور میشه جنسهای وارده به انبار را به طور اتوماتیک وارد شیت ۳ که موجودی انباره وارد کنم با این شرط که گزینه های تکراری حذف بشه.
    البته نمیخوام این کار دستی و با ایکن remove duplicates انجام بشه .
    ممنونم.

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

      درود بر شما
      یک راه استفاده از فرمول نویسی آرایه ای هست که بتونه لیست بدون تکرار براتون فراخوانی کنه. با ترکیب match و countif
      یک راه هم ضبط ماکرو از همون remove duplicate
      یا اینکه از کوئری استفاده کنید و ریموداپلیکیت و انجام بدید تو کوئری

  • حمید ۶ آذر ۱۳۹۸ / ۱:۳۴ ب٫ظ

    سلام سرکار خانم خاکزاد
    ابتدا بابت بخاطر سایت خوبتان و وقتی که برای پاسخگویی به سوالات میزارید تشکر میکنم
    میخواستم بدونم چطور میشه در یک شیت ( مثلا شیت B ) تعریف کرد که چنانچه مثلا سلول D1 شیت دیگر ( مثلا شیت A) کمتر مساوی N باشد دیتا کل ردیف مذکور را به شیت B منتقل نماید
    بدیهی است ر دیف و دیتاهای شیت B با تغییر اعداد D1:Dn شیت A کم و زیاد میشه

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

      درود بر شما
      خواهش میکنم
      بسته به ساختار داده متفاوت هست.
      اما میشه ی راه اینظوری پیشنهاد کرد:
      اول با تابع match مکان سلولی که شرط رو داراست پیدا کنید و بعد بذاریدش داخل تابع INdex و در شیت جدید فراخوانی انجام بدید

  • فاطمه ۱۳ آبان ۱۳۹۸ / ۹:۳۲ ق٫ظ

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

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

      سلام
      از تب Insert روی دکمه Text کلیک کنید و بعد روی دکمه Object کلیک کنید.
      از پنجره باز شده برنامه ای که میخواید فایلش رو قرار بدید انتخاب کنید و فایل مورد نظر رو انتخاب کرده و به اکسل اضافه کنید.

  • سورنا ۸ آبان ۱۳۹۸ / ۷:۴۹ ب٫ظ

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

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

      سلام
      در این حجم از فایل بهترین روش استفاده از Power Query هست.

  • محمدرضا عادل خانی ۶ آبان ۱۳۹۸ / ۱۱:۵۱ ب٫ظ

    با سلام و احترام
    برای نمایش یک سلول یک شیت در سلول شیت دیگر از فرمول زیر استفاده می کنم:
    =IF(‘ورود اطلاعات اعضای کمیسیون’!$B$7=0,””,’ورود اطلاعات اعضای کمیسیون’!$B$7)

    اما اگر سلول ترکیبی از چند سلول باشد یعنی merge شده باشد، دیگر دستور قابل اجرا نیست یعنی رابطه زیر خطا می دهد:
    =IF(‘ورود اطلاعات پرونده ها’!C6:D8=0,””,’ورود اطلاعات پرونده ها’!C6:D8)

    چطور اصلاحش کنم؟

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

      درود
      داشتن سلول مرج در فرمول نویسی مجاز نیست

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

    با سلام و احترام سوالی داشتم. من می خوام از تابع indirect برای فراخوانی محتویات چند سلول از یک شیت دیگر استفاده کنم. مثلا فکر کنید که در sheet1 و در سلولهای A1,A8,A15 اطلاعات مورد نیاز ما درج شده باشد. من چطور می توانم این سلولها را در شیت دیگر فراخوانی کنم. دقت کنید که نمی خواهم برای هر سلول جداگانه آدرس دهی کنم و می خواهم به صورت اتوماتیک سلولهای ستون A در ردیف های ۱، ۸ و ۱۵ در شیت ۱ داخل شیت ۲ فراخوانی شود. با تشکر

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

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

      برا یآشنایی بیشتر مقاله زیر رو مطالعه گنید

      https://excelpedia.net/address-function/

      • فاطمه ۲۴ مهر ۱۳۹۸ / ۸:۴۳ ق٫ظ

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

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

          درود
          داخل ی indirect بذارید حل میشه

  • حسین بیگی ۲۲ مهر ۱۳۹۸ / ۸:۴۷ ق٫ظ

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

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

      درود بر شما
      احتمالا فایل های مرجع جابجا شدن و مسیر ذخیره اونها تغییر کرده

  • امیر ۲۰ مهر ۱۳۹۸ / ۶:۵۹ ب٫ظ

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

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

      درود بر شما
      البته بستگی به جنس داده ها داره ولی احتمالا vlookup جواب میده

  • فرهاد پرورش ۱۷ مهر ۱۳۹۸ / ۱۱:۱۳ ق٫ظ

    سلام
    من میخواستم اطلاعاتی که توی یک شیت اکسل دارم براساس فیلتر کردن به workbook تبدیل کنم دونه دونه نمی خوام این کار انجام بدم
    مثلا ۲۶ تا مرکز داریم من می خوام این ۲۶ تا مرکز که هر کدوم ۱۰۰ تا پرسنل دارن و ۲۶ تا workbook بهم بده
    قبلا kutools انجام میشد ولی الان خریدنی شده ممنونم میشم راهنمایی کنید ؟

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

      درود بر شما
      kutools هم کد نویسی vba انجام شده.
      باید کد بزنید

ارسال دیدگاه

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

توسط
تومان