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

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





سوال: چند شیت داریم میخواهیم اطلاعاتش کپی بشه(ادغام) در یک شیت
نکته اینکه محدوده نداشته باشه…
درود بر شما
برای ادغام شیت ها، هم افزونه وجود داره و میتونید دانلود کنید. افزونه RDBmerge
هم اینکه از پاورکوئری میتونید استفاده کنید
سلام .روز بخیر من یه فایل اکسل دارم که شامل چندتا شیت می باشد. حالا در یک شیت خلاصه میخواهم تمامی عملیات مربوط به تاریخ ۹۸/۰۶/۱۲ را با هم جمع کند حال ممکنه در یکی دوتا شیت تاریخ ۱۲ موجود نباشد. آیا دستور خاصی برای جمع زدن وجود دارد یا باید از طریق جمع زدن دستی و با لینک کردن استفاده کنم ؟
درود بر شما
اگر منظورتون از جمع زدن منطق sumif در شیت های مختلف هست
میتونید از sumif بصورت آرایه ای استفاده کنید
سلام دوباره سوال دوم :فرمی که درمحیط vba درست کردم رو میخوام وقتی توی یکی از تکست باکس ها عددی وارد کردم اطلاعات اون رو از یه شیت دیگه پیداکنه و توی تکست باکس های بعدی بریزه لطفا راهنمایی کنید وکد رو واسم بنویسید تکست باکس۱۳ وشیت۲ برای مثال
درود بر شما
در event change اون تکست باکس باید کد جستجو رو بنویسید
برای جستجو هم دستورات مختلفی وجود داره و بسته به ساختار داده متفاوته. هم میتونید از توابع جستجو استفاده کنید و هم دستورات for, find
باسلام من یک فرم vbaرو در اکسل ساختم و وقتی فرم روچاپ میکنم حرف های(ن.و.م) از هم جدا میشن اما توی فایل جدانیستن.لطفا راهنمایی کنید ممنون.
سلام خسته نباشید من دو شیت در اکسل دارم که دوتا جدول هست عین هم. میخام چیزایی که در شیت دو مینویسم در جدول شیت یکم بیوفته به خاطر همین یه مساوی تو هر سلول شیت یک زدم و در همان سلول در شیت دو اینتر کردم اما وقتی شیت دو من خالیه شیت یک صفر میوفته داخل جدول چطور میتونم این صفر هارو از بین ببرم ؟
درود بر شما
راه های نشون ندادن صفر زیاده
یک راهش استفاده از فرمت سل هست.
روی سلولی که میخواید صفرش دیده نشه کلیک راست کرده و از قسمت format cell قسمت custom ، این کد رو بنویسید:
۰;-۰;;@
با سلام من یک فایل اکسل دارم که دو شیت دارد به نام data و menu با وارد کردن کد ملی در menu مشخصات اطلاعات فرد که در data موجود می باشد اورده می شود حالا می خواهم در شیت data دو خانه از هم منها شود و در شیت menu با اطلاعات شخص اورده شود لطفا فرمول مورد نظر را بهم بگید.
درود بر شما
یا اون مقداری که باید منها بشه رو داخل دیتابیس ایجاد کنید مثل سایر مشخصات فرد.
یا اینکه اون دو مقدار رو با vlookup فراخوانی کنید و از هم کم کنید
سلام
من میخوام اطلاعات رو از سایت بورس http://www.tsetmc.com به یه سری سلول لینک کنم تا به صورت لحظه ای بروز بشه.
چند روش رو امتحان کردم ولی نشد.
شما میتونید منو راهنمایی کنید.
با تشکر
درود بر شما
از قسمت data/from web میشه
از get & transform و from web هم بهتره. (د رواقع از پاور کوئری استفاده کنید)
سلام امتحان کردم سایت اجازه نمیده
مجبور شدم ی ماکرو بنویسم که هر وقت run شد نسخه جدید ر جایگزین کنه. مشکل این روش هم اینه که اطلاعات ی نماد تو هر دانلود تو سطر های متفاوتی قرار میگیره
با سلام وقت بخیر
من می خوام ک یک command button با text box داشته باشم که با نوشتن نام یک اکسلی رو که می خوام از یک فولدر انتخابی در درایو بالا بیاره اسم تمامی اکسل ها رو هم در این شیت اکسل دارم(بلفرض مثال ۱۰۰۰ مورد هست که می خوام ب این شکل hyperlink بشن)
با تشکر
درود بر شما
از تابع hyperlink استفاده کنید
https://excelpedia.net/hyperlink-function/
با سلام
من دوتا فایل اکسل مجزا راجع به موجودی انبار و نقطه سفارش دارم میخواهم موجودی فایل(موجودی انبار)به طور خودکار در قسمت مانده موجودی نقطه سفارشم بشینه ممنون میشم راهنماییم کنید
سلام
کافیه داخل سلولی که میخواید اطلاعات از فایل دیگه اونجا بشینه بنویسید مساوی و سلول مورد نظر در فایل دیگه رو انتخاب و اینتر کنید.
زمانیکه دو تا فایل باز بشن مقادیر به روزرسانی میشن.
سلام وقت بخیر
من یه فایل اکسل دارم با تعدادی شیت. میخوام یک سری از ردیفها که مشخصه خاصی دارند عینا به شیت آخر منتقل بشن. در حقیقت یه جور فیلتر از کلیه شیتها و کپی در ردیفهای شیت دیگه.
امکانش هست؟
درود بر شما
یک راه کد نویسی VBA هست.
با حلقه ها، بین شیت ها حرکت کنید و جستجو اانجام بدید و در یک شیت نهایی پشت سر هم ذخیره کنید
سلام ، لیست در اکسل دارم با عناوین نام کلاس ، نام و نام خانوادگی و دیگر مشخصات افراد ، تعداد ۲۰۰ رکورد ثبت نام انجام شده و کلاس اول تا ششم به صورت مختلط ثبت شده است برای اینکه در یک شیت دیگر لیست کلاس اول را استخراج کنم با چه فرمولی باید انجام شود.
درود بر شما
اگر حتما با فرمول میخواید انجام بدید، آرایه ای باید استفاده کنید. مشابه این فرمول:
AL1 شرط هست، یعنی کلاس اول
V1:v13 ستون کلاس ها
S1:AD13 محدوده داده ها
درود بر شما
اگر حتما با فرمول میخواید انجام بدید، آرایه ای باید استفاده کنید. مشابه این فرمول: