فرمول نویسی برای چند شیت اکسل - خواندن سلول از شیت ها

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

برای آدرس دادن به یک سلول در یک شیت دیگر، ابتدا نام شیت را می‌نویسیم و سپس یک علامت ! می‌گذاریم و سپس آدرس سلول را می‌نویسیم:

= sheet1!A1

در فرمول قبل فرض کرده‌ایم که شیتی به نام Sheet1 داریم و می‌خواهیم سلول A1 آن را بخوانیم.


مثال ۱) فرمولی بنویسید که سلول A1 از شیت Cost را با سلول B2 از شیت Sales جمع بزند:

= Cost!A1 + Sales!B2

نکته) در فرمول نویسی اکسل حروف کوچک و بزرگ مهم نیست.

نکته) لازم نیست در اکسل آدرس سلول و شیت را تایپ کنید بلکه می‌توانید علامت = را در یک سلول بزنید و سپس بر روی هر سلولی که کلیک کنید، اکسل آدرس آن سلول را در فرمول شما می‌نویسد.


مثل ۲)  فرمولی را بنویسید که مجموع کل ستون F شیت sales  1402 را جمع بزند.

توجه کنید که در نام شیت ما فاصله (Space) داریم بنابراین باید نام شیت را در داخل علامت '   '  (بخوانید کوتیشن) بگذاریم. بنابراین فرمول ما می‌شود:

= SUM( 'sales  1402'!F:F )

نکته) بهتر است که در نام شیت از فاصله استفاده نکنید و به جای آن _ بگذارید مثلا نام شیت sales_1402 باشد.

چون نام شیت در فرمول ظاهر می‌شود باید: 
 - نام شیت کوتاه و با معنا باشد. 
 ـ نام شیت اکسل فارسی نباشد. 
 ـ به جای فاصله در نام شیت، از _ استفاده کنید. 
 


مثال ۳) فرمولی را بنویسید که سن Kaveh را از شیت karmandan بیابد و برای ما نمایش دهد. 

در این حالت ما نمی‌دانیم که Kaveh در کدام سلول شیت karmandan تایپ شده است و به همین دلیل باید با تابع Vlookup اکسل، به دنبال Kaveh بگردیم و سن او را از سلول جلویی آن بخوانیم:

=VLOOKUP( "Kaveh", karmandan!A:B, 2, 0 )

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


مثال ۴) فرمولی بنویسید که تمامی سلول‌هایی A1 شیت‌های ماه 1 تا 12 را جمع بزند.

فرض کنید که یک فایل دارید که در آن 12 شیت دارید و نام شیت‌ها MONTH1 تا MONTH12 است . حال می‌خواهید فرمولی را بنویسیم که جمع سلول A1 همه شیت‌ها را محاسبه کند و احتمالا شما چیزی شبیه فرمول زیر را خواهید نوشت:

= MONTH1!A1 + MONTH2!A1 + MONTH3!A1 

نکته) چون نام شیت یک عدد است آن را باید داخل ' ' بگذاریم.

مشاهده می‌کنید که نوشتن یا کلیک بر روی ۱۲ شیت کار تکراری و وقت گیری است.

اگر این ۱۲ شیت به ترتیب و پشت سر هستند می‌توانیم در این حالت ما از فرمول‌های ۳ بعدی اکسل استفاده کنیم:

= MONTH1:MONTH12!A1

 

فرمول سه بعدی اکسل چیست؟

به فرمولی گفته می‌شود که در آن به آدرس سلول‌های مشابه از ** چندین شیت **‌ اشاره شود مانند:   =SUM( MONTH1:MONTH12!A1 ) 

مثال ۵) فرمولی بنویسید که ستون B شیتی که نام آن را در سلول A1 تایپ کرده‌ایم را جمع بزند؟

برای تبدیل یک متن به یک آدرس معتبر اکسلی از تابع INDIRECT استفاده می‌کنیم و در اینجا هم نام شیت را از سلول A1 می‌خوانیم و به آدرس ستون B می‌چسبانیم و سپس با INDIRECT آن را یک آدرس معتبر اکسلی می‌کنیم:

=SUM( INDIRECT(A1 & "!B:B") )

تذکر مهم: تابع INDIRECT باعث کند شدن فایل‌های بزرگ می‌شود و توصیه می‌شود که از آن استفاده نکنید!


مثال ۶) با زبان vba برنامه‌ای بنویسید که اسامی همه شیت‌های فایل اکسل جاری را به همراه مقدار سلول A1 هر یک برای ما بنویسید؟

برای ایجاد یک حلقه بر روی اعضای Collection شیت‌های اکسل از دستور for each استفاده می‌کنیم:

Sub Print_All_Sheet_Names()

Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
    i = i + 1
    Cells(i, 1).Value = sh.Name
    Cells(i, 2).Value = sh.Range("A1").Value
Next sh

End Sub

پرسش ۱) اگر نام شیت اکسل تغییر کند، آیا فرمول ما که به آن شیت اشاره دارد، خطا خواهد شد؟

خیر، نام شیت در فرمول به صورت خودکار آپدیت می‌شود.


پرسش ۲) اگر شیت حذف شود، چه اتفاقی برای فرمولی می‌افتد که در آن از نام شیت استفاده شده است؟

نام شیت در فرمول به خطای #REF! تغییر خواهد یافت و فرمول شما هم خطای #REF! خواهد شد. در قسمت مقالات پیشنهادی پایین همین صفحه می‌توانید لینک شرح خطاهای اکسل را بیابید.


پرسش ۳) اگر آدرس سلول را در شیت ندانیم باید چه کار کرد؟

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

 

شما هم تجربه یا دیدگاه خود را بنویسید:

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

متن ساده

  • تگ‌های HTML مجاز نیستند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
کد امنیتی
مریم سادات (تایید نشده) در تاریخ دوشنبه, 1403/02/31 - 08:02 نوشته:

سلام و خسته نباشید
واقعا ممنونم از آموزشی که گذاشتید
خیلی وقت بود Vlookup رو کم و بیش کار کرده بودم ولی چون زیاد با اکسل کار نمیکردم هم فراموش کرده بودم هم هر بار برای استفاده خیلی زمان میذاشتم چون یادم نمیموند باید چیکار کنم. انقدر خوب توضیح دادید که فکر نمیکنم دیگه یادم بره
ترتیب یه فایل مهم رو بهم ریخته بودم ذهنم یک روز درگیر بود-میترسیدم برم سمت Vlookup و زمان زیادی بذارم چون بلد نبودم اول این متن رو خوندم بعد اجرا کردم کارم انجام شد
ممنووووووون

محمدرضا 111 (تایید نشده) در تاریخ چهارشنبه, 1402/11/25 - 11:38 نوشته:

سلام. ممنون از آموزشتون من یه مشکلی دارم اگر راهنمایی بفرمایید ممنون میشم.
فرض کنید یک فایل اکسل داریم شامل 20 شیت که اسم شیت ها تشکیل شده از یک بخش متنی و یک بخش عدد است مثلا sheet1, sheet2 , و....
میخواهم یک سلول خاص رو از 10 شیت اول کپی کنم به 10 شیت دوم با ترتیب یعنی به این شکل که از شیت1 کپی بشه به شیت11، از شیت 2 کپی بشه به شیت 12 الی آخر. برای این کار از لوپ for استفاده کردم با متغیر i که سلول مورد نظر رو از sheeti کپی کنه به sheeti+1 ولی در معرفی sheeti و sheeti+1 مشکل دارم. احتمالا چیز سختی نیست ولی نشد انجام بدم.

b.mohamadi (تایید نشده) در تاریخ دوشنبه, 1402/09/13 - 17:46 نوشته:

سلام. من یه فایل شیت دارم که کارمندانی داخل اون فعالیت ها رو ثبت میکنن و یک فایل دیگه هم دارم که خودم بر اساس فعالیت اونها درصد هاشون رو در نظر میگیرم ولی برای محاسبه باید یک محدوده ای رو کپی کنم تو فایل محاسباتی خودم(به طور مثال این محدوده :B2:M102)
حالا اگر بخوام این محدوده خودش اتومات از فایل اول بشینه تو فایل دوم باید چیکار کنم ؟
نکته:هر ماه به صورت جداگانه محاسبه میکنم مثلا فروردین/اردیبهشت/ ...

فرشید میدانی در تاریخ دوشنبه, 1402/06/13 - 23:05 نوشته:

سلام / قاعدتا باید بتوانید با همین فرمول ساده اینکار را انجام دهید و باید فرمولها را در چندین سطر خالی شیت show کپی کنید تا اگر در شیت input داده ای اضافه شد، این فرمول ها آن را بیاورند. راه حل دیگر پیشرفته دیگر، استفاده از power query اکسل است که در همین سایت ویدئوهای آن را می توانید ببینید. 

ندا (تایید نشده) در تاریخ شنبه, 1402/05/07 - 12:50 نوشته:

سلام آیا توی گوگل شیت، امکان خوندن داده از یک اسپرید شیت دیگه رو داریم؟