
ارتباط دو شیت در اکسل
وقتی داریم فایلی درست میکنیم و محاسباتی انجام میدیم، گاهی اوقات لازمه که اطلاعاتی رو از شیتها و فایل های دیگه فراخوانی کنیم و یا در واقع باید ارتباط دو شیت در اکسل (ارتباط بین شیتها در اکسل) رو ایجاد کنیم. برای اینکه بتونیم اینکار رو انجام بدیم باید یک بین مقصد و مبدا مورد نظر لینک برقرار کنیم. در این مقاله حالت های ارجاع دادن به منابع خارج از شیت جاری می پردازیم که بهش میگن لینک خارجی.
در واقع این لینک خارجی چیزی نیست جز ارجاع دادن به سلول یا محدوده ای غیر از شیت فعلی (شیت دیگه یا فایل دیگه). مهم ترین ویژگی این مسئله اینه که با تغییر داده های شیت یا فایل مرجع، نتیجه در فایل مقصد تغییر میکنه.
آدرس دهی به خارج از شیت جاری خیلی شبیه آدرس دهی معمولی هست، فقط یک سری نکات خیلی مهم وجود داره که اونها رو باید رعایت کنیم. در ادامه این مقاله، نحوه لینک دادن به شیت یا فایل دیگه رو شرح خواهیم داد:
- ارجاع به شیت دیگر ( ارتباط دو شیت در اکسل )
- ارجاع به فایل دیگر
- ارجاع به یک محدوده نامگذاری شده
چگونگی ارتباط دو شیت در اکسل
برای ارجاع دادن به یک سلول یا یک محدوده از یک شیت دیگه از همون فایل اکسل باید الگوی زیر رو رعیات کنیم. یعنی بعد از اسم شیت، علامت تعجب (!) و سپس آدرس سلول گذاشته میشه. یعنی:
لینک به یک سلول از شیت دیگه:
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 را میزنیم. به تصویر زیر دقت کنید:

چطور به یک سلول یا محدوده از فایل دیگر، لینک برقرار کنیم
ارجاع دادن به یک فایل اکسل دیگه به دو روش انجام میشه و بستگی به این داره که فایل مورد نظر باز هست یا بسته
- ارجاع دادن به یک فایل اکسل باز
وقتی که فایل مرجعی که قراره اطلاعات از آن فراخوانی بشه، باز باشه، آدرس لینک شامل نام فایل (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)
در واقع اجزای این لینک مشابه لینک در حالت بسته هست، فقط مسیر ذخیره فایل هم بهش اضافه میشه. در این صورت حتی اگر فایل مرجع بسته باشه و ما فرمول رو تغییر بدیم، نتیجه آپدیت خواهد شد.
محدودیتی برای تایپ نامها به زبان پارسی وجود نداره و میتونید هم اسم شیت و هم اسم فایل رو بصورت فارسی در قالب این الگوها استفاده کنید. ولی پیشنهاد میشه که نام ها همه انگلیسی باشن، چون بعضی مواقع استفاده از نام پارسی باعث به هم ریخته شدن فرمول و مشکل شدن بررسی فرمول ها میشه.
چطور به یک محدوده نامگذاری شده، لینک برقرار کنیم
علاوه بر ارجاع به یک سلول یا محدوده (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

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





با سلام و خسته نباشید
در یک یوزرفرم از Multipage استفاده کرده سه صفحه ایجاده کرده ام که در Page1 از جدول شیت ۲ ، در Page2 از جدول شیت ۳ و درPage3 از جدول شیت ۴ استفاده کرده ام . و کلید combobax1 را برای ثبت اطلاعات در بیرون صفحات استفاده کرده ام . اما وقتی اطلاعات را وارد و دگمه ثبت را میزنم . اطلاعات در شیت ۱ ثبت اما در بقیه شیت ها ثبت نمیشه . برای هر Page در داخلش از کلید ثبت جداگانه استفاده کردم باز ثبت نشد . لطفا راهنمایی بفرمایید . با تشکر فراوان
سلام
اول کد باید شیت رو مشخص کنید در غیر اینصورت میره و در شیت فعال ثبت میکنه
با سلام ،ممنون از راهنمایی تان – لطفا در اینمورد هم راهنمایی بفرمایید . ۱- در اکسل ستونی را فیلتر می کنم و چند سلول را در همان ستون یا ستونهای دیگر انتخاب محتویاتش را Delete یا اضافه می کنم . بعد از فیلتر مشاهده میشود که در ردیف های مابین ردیف های فیلتر شده هم Delet یا اضافه شده . ۲ – در یک شیت کار می کنم و اسکرول مثلا در سلول D3 قرار دارد . وقتی به شیت دیگری میروم و بر می گردم اسکرول به سلول های پایین رفته و قسمتی از ستونها و ردیف ها کلا سفید شده محتویات نشان داده نمیشود . باید با اسکرول مقداری بازی کنم و بالا و پایین بروم تا وضعیت درست شود . قبلا از راهنمایی های ارزنده تان تشکر می کنم .
درود
برای کار کردن با دیتای فیلتر شده ،اصولا مشکلی نیست و برای محکم کاری، از go to/visible cells only اسفاده کنید
مورد دوم هم فکر میکنم فریز شده که اینطوری میشه
با سلام و خسته نباشید
من جدولی در شیت ۲ دارم که برایش یوزرفرم تهیه کرده ام . برای آن یوزرفرم در شیت ۱ دکمه commandbutton ایجاد کرده ام . اما وقتی فرم را در این شیت ۱ باز کرده و اطلاعات را وارده می کنم اطلاعات بجای شیت ۲ در همان شیت ( شیت ۱ ) ثبت می شود . لطفا راهنمایی بفرمایید چطوری فرمولی یا ارتباطی بنویسم تا اطلاعات در شیت ۲ ثبت بشود .
درود بر شما
ابتدای کد باید شیت ۲ رو سلکت کنید مثلا :
sheet2.range(“A1:A10”)…….
سلام خداقوت
من یک سلول رو از شیت دیگری فراخوانی میکنم
بعد میخوام حالت سری ایجاد کنم که بقیه اش خودکار فراخوانی بشه..منتها میخوام شماره سلول ثابت باشه اما شیت ها تغییر کنه.. یعنی مثلا سلول A5 یکبار از شیت اول بعد از شیت دوم بعد از شیت سوم و.. فراخوانی بشه.. چه کنم؟
درود بر شما
از تابع adress استفاده کنید
نمونه مشابه در این مقاله هست:
https://excelpedia.net/address-function/
سلام ، می خواهم دو فایل اکسل خود را در شبکه قرار بدهم ،در شیت ۱ از فایل ۱ در سلول a1 از شیت۲ از فایل ۲ سلول b1 عددی را استخراج کنم و در عملیات استفاده کنم ، آدرس دهی ابتدایی که محل قرار گیری فایل را نشان دهد با توابع left و ،cell و search تعیین کرده ام و ترکیب نام فایل و نام شیت به همراه ! را به ان اضافه کرده ام و در آخر سلول b1 را به ترکیب افزودم .
حالا با چه تابعی بگویم از این ادرس بخوان .
درود بر شما
احسنت به توضیحات کامل
تابع indirect
سلام
من برای کارم نیاز دارم که از سطر های شیت اول یه سری خروجی برای شیت های بعدی بگیرم
مثلا آخرین سطر شیت اول در صورتی که ستون b دارای مقدار باشه به آخر سطرهای شیت دوم انتقال پیدا کنه و در صورتی که در آخرین سطر شیت اول ستون c مقدار داشت به شیت سوم اضافه بشه در صورتی که ستون های b ,c خالی باشه از اون سطر بگذره
ممنون میشم راهنمایییم کنید
درود بر شما
برای این قبیل کارها بهتره کدنویسی VBA انجام بشه…
با سلام و ممنون از اطلاعات بی نظیرتون
من دو تا شیت دارم، تو شیت اول یک سری مشخصات افراد تو سلولهای جداگانه هست به اضافه کد ملی تو شیت دوم یک سری مشخصات مشترک با شیت اول هست ولی کدملیشون نیست با چه تابعی اکسل می تونه مشخصات دو شیت رو با هم مقایسه کنه و اگه مشخصات یکسان بود کد ملی رو جلوی اسمشون تو شیت دوم وارد کنه؟
درود
خب اون مشخصات غیر تکراری؟
یعنی هیچ دو نفری نیست که همه چیزشون یکی باشه به جز کد ملی؟
اگر یونیکه، یک راه ساده اینه که همه رو به هم بچسبونید و vlookup کنید
یا از دستورات merge پاورکوئری استفاده کنید
کلا خیلی بستگی به ساختار فایل و شرایط داده مثل همین یونیک بودن داره
سلام میخواستم یک فایل اکسلی رو طراحی کنم که یک انبار تصلی از اموال یک شرکت داشته باشم بعد هنگام ورود وقتی در شیت بعدی سند میزنم فرایند ورود به طور خودکار به انبار تصلیم اضافه یشه و در صورت کسر کردن و به کجا ارسال شده در تنبار اصلیم ثبت شوند .. تشکر
درود
متوجه نشدم سوال کجا بود؟!
سلام.شما بی نظیرexeین ممنونم از وقتی که میزارین.من یه سوال دارم والبته سوال که زیاد دارم ولی یکی از سوالام اینه که میشه یه فایل اکسل و به فایل اجرائی تبدیل کرد.پسوند exe بگیره؟
سلام، ممنون از نظر لطف شما
معنی نداره که فایل اکسل به تنهایی به فایل exe تبدیل بشه. اگه منظورتون کدهای VBA درون آن هست، دو حالت وجود داره:
۱- میشه کاری کرد که وقتی فایل اکسل باز بشه فقط برنامه مورد نظر بشه که نیاز به تغییرات XML و VBA هست.
۲- میشه با استفاده از ویژوال استودیو افزونه exe ایجاد کرد که بعد از نصب، برنامه شما روی اکسل پیاده بشه.
سلام وقت بخیر یک راهنمایی از خدممتون می خواستم من به لیست زیادی از تولیدی دارم که تو یک شیت جداگانست و در شیت دیگی ای که شامل فاکتور تولیدی ها به صورت کلی هست نیاز دارم که به صورت سریع با زدن اول اسم هر تولیدی خوده اکسل بقیشو برام بیاره که نخوام کامل تایپ کنم چطور می تونم این کارو کنم ممنون میشم کمکم کنید
درود
همچین سیستمی که بصورت پیشفرض نداره
میتونید دیتاولیدیشن درست کنید
یا لیست قابل جستجو
مقالاتش داخل سایت هست، مثلا:
https://excelpedia.net/searchable-list/
سلام ببخشید بنده عکس از فولدری لینک کردم به یک شیت بعدش ولی وقتی فایلو توی سیستم دیگه میریزم به همراه همون عکسها ولی لینک ارور میده.ایا باید دوباره تو سیستم جدید لینک کنم؟
درود
بله سورس جدید رو باید بدید
مگر اینکه فرموله باشه و خودش بتونه ادرس رو پیدا کنه
سلام
وقت بخیر
دو فایل مجزا به نام های واردات و صادرات دارم.
میخوام یک سلول مشخص از جدول فایل واردات با یک سلول مشخص از جدول فایل صادرات لینک بشه.چطور باید اینکارو انجام بدم؟
مثلا سلولJ4 از واردات نوشته شده ، شماره فاکتور(y) به فلان شرکت به شماره فاکتور x. صادر شده. اینو هیاپر لینک کنم به مثلا سلول J5 از فایل صادرات .(در واقع همون شماره فاکتور x صادر شده)
هر دو فایل مجزا و به صورت اکسل بوده و داده ها داخل جدول مشخص هستن.
درود
کافیه هر دو رو باز کنید، و در سلول مقصد = بزنید و بعد برید در فایل مبدا سلول مورد نظر رو انتخاب کنید و enter بزنید