اگر شما به این صفحه آمدهاید یعنی میخواهید فرمولی را در یک شیت اکسل بنویسید تا آن فرمول محاسبهای را روی چیزی انجام دهد که در شیت دیگری است.
برای آدرس دادن به یک سلول در یک شیت دیگر، ابتدا نام شیت را مینویسیم و سپس یک علامت ! میگذاریم و سپس آدرس سلول را مینویسیم:
= 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 جستجو مقداری است و سپس مقادیری که جلوی آن وجود دارند را برای شما خواهد آورد. ما معمولا برای خواندن اطلاعات از شیت دیگر، از این تابع استفاده میکنیم.
شما هم تجربه یا دیدگاه خود را بنویسید:
سلام
من یک شیت دارم که اطلاعات اصلی داخل آن ثبت هست و هر فردی یک کد انحصاری دارد حال می خوام داخل یک شیت دیکه وقتی کد هر فرد را میزنم و اطلاعات وارد میکنم برود داخل شیت اصلی ثبت بشه و الان با این دستور کار را انجام میدم و جواب هم میده =INDEX(Resource!A:AO,MATCH(پیمانکار!F$2,Resource!B:B,0),9) ولی مشکل این هست که هر دفعه که کد عوض میشه اطلاعات داخل کد قبلی پاک میشه و کد جدید براش اطلاعات میرود .آیا کسی میدونه چطور مشکل را حل کنم؟
سلام لطفا راهنمایی کنید
من یک شیت حاوی حجم زیادی از اطلاعات در مورد مشتری های بسیار زیادی دارم
میخوام داخل یک شیت دیگه بعضی از این مشتری هارو فراخانی کنم و از مقدار فروششون سام بگیرم در هر ماه از سال به تفکیک
وقتی فرمول سام رو برای مشتری اول میزنم و انتقال میدم به مشتری های بعدی چون شماره ردیف های مشتری ها در شیت اول پشت سر هم نیست دچار خطا میشه و عدد اشتبا میده
راهکاری هست که این مشکل حل بشه
مثلا در شیت اول من از ردیف ۱ تا ۱۰۰۰ مشتری دارم
در شیت دوم توالی مشتری ها پشت سر هم نیست و مثلا اینجوریه ۱ ۱۰ ۱۳ ۱۵ ۲۰ ۱۰۰ ۳۰۰
وقتی توی شیت دوم برای مشتری ۱ فرمول سام رو میدم و فرمول رو انتقال میدم به مشتری های ۱۳ ۱۵ ۲۰ ۱۰۰ ۳۰۰ برای مشتری های ۱۳ ۱۵ ۲۰ ۱۰۰ ۳۰۰ فرمول اشتباه عمل میکنه و مثلا برای مشتری ۱۳ اطلاعات مشتری ۲ رو میاره برای ۱۵ اطلاعات ۳ برای ۲۰ اطلاعات ۴ رو و …
چجوری میتونم این مشکل رو حل کنم
سلام آیا میشه یک یوزرفرم ساخت برای ثبت اطلاعات در چندین شیت مثلا با انتخاب کد پرسنلی اطلاعات یوزرفرم توی شیت مربوط به آن کد پرسنلی ثبت شود
در یک فایل اکسل دوشیت وجود دارد که شیت یک در یک ستون نام ودر ستون دوم کد عددی نوشته شده است
در صورتی که بخواهیم در شیت دوم با تایپ نام دریک ستون کد مربوط به نام در ستون مقابل نوشته شود
با تشکر راهنمایی بفرمایید
با سلام
من 5 شیت دارم هر شیت حاوی اطلاعات متنی است و می خواهم آمار و تعداد آنهایی که به روز رسانی شده و یا نشده و یا اینکه در حال پیگیری هستیم را در شیت ششم به عنوان چارت و نمودار بیارم ولی بلد نیستم می توانید راهنماییم ام کنید . ببخشید خیلی فوریه ممنون
سلام و خسته نباشید
از سبک آموزشتون و اینکه خیلی از فرمول هایی که جایی گفته نمیشه هم نام برده بودید لذت بردم. میتونید کلاسی که همینطور کامل و جامع برنامه اکسل آموزش داده بشه معرفی کنید ممنون میشم. در حد فرمول های اولیه و ساده آشنا هستم و کار میکنم اما دوست دارم حرفه ای یاد بگیرم. متشکرم
با سلام/ می توانید همواره لیست دورههای در حال ثبت نام فرساران را در لینک زیر بینید:
www.farsaran.com/cc
سلام در اکسل دو شیت به نام های 1 و 2 داریم سلول A1 از شیت 1 دارای فرمت خاصی هست مثلا رنگ سلول زرد و فونت و سایز مخصوص به خودش رو دارد من میخوام سلول A1 در شیت دوم هم همین فرمت رو بگیره فرمولی بر اش هست؟
سلام/ خروجی هیچ فرمول در اکسل Format نیست و فقط اینکار باید یا دستی انجام شود و یا اینکه همان فرایند دستی انجام دادن با vba برنامه نویسی شود.
سلام من ی سری اطلاعات تقریبا مبتدی راجب اکسل دارم ولی الان برای کارم نیاز دارم یه اکسل بسازم که نیاز به فرمول نویسی داره ایا شما میتونید به من کمک کنید برای نوشتن فرمولش.چون تقریبا فک کنم یه چیزه حرفه ایی باشه این حالتی که توی ذهنم هست ممنون میشم پاسخ من رو بدید .
سلام و خسته نباشید
واقعا ممنونم از آموزشی که گذاشتید
خیلی وقت بود Vlookup رو کم و بیش کار کرده بودم ولی چون زیاد با اکسل کار نمیکردم هم فراموش کرده بودم هم هر بار برای استفاده خیلی زمان میذاشتم چون یادم نمیموند باید چیکار کنم. انقدر خوب توضیح دادید که فکر نمیکنم دیگه یادم بره
ترتیب یه فایل مهم رو بهم ریخته بودم ذهنم یک روز درگیر بود-میترسیدم برم سمت Vlookup و زمان زیادی بذارم چون بلد نبودم اول این متن رو خوندم بعد اجرا کردم کارم انجام شد
ممنووووووون
سلام. ممنون از آموزشتون من یه مشکلی دارم اگر راهنمایی بفرمایید ممنون میشم.
فرض کنید یک فایل اکسل داریم شامل 20 شیت که اسم شیت ها تشکیل شده از یک بخش متنی و یک بخش عدد است مثلا sheet1, sheet2 , و....
میخواهم یک سلول خاص رو از 10 شیت اول کپی کنم به 10 شیت دوم با ترتیب یعنی به این شکل که از شیت1 کپی بشه به شیت11، از شیت 2 کپی بشه به شیت 12 الی آخر. برای این کار از لوپ for استفاده کردم با متغیر i که سلول مورد نظر رو از sheeti کپی کنه به sheeti+1 ولی در معرفی sheeti و sheeti+1 مشکل دارم. احتمالا چیز سختی نیست ولی نشد انجام بدم.
سلام. من یه فایل شیت دارم که کارمندانی داخل اون فعالیت ها رو ثبت میکنن و یک فایل دیگه هم دارم که خودم بر اساس فعالیت اونها درصد هاشون رو در نظر میگیرم ولی برای محاسبه باید یک محدوده ای رو کپی کنم تو فایل محاسباتی خودم(به طور مثال این محدوده :B2:M102)
حالا اگر بخوام این محدوده خودش اتومات از فایل اول بشینه تو فایل دوم باید چیکار کنم ؟
نکته:هر ماه به صورت جداگانه محاسبه میکنم مثلا فروردین/اردیبهشت/ ...
سلام وقت بخیر
آموزشتون بسیار کاربردی بود و یه قسمتی از مشکل من حل شد
یه موردی که هنوز دارم باهاش سر کله میزنم اینه که من دوتا sheet دارم به نام input و show
الان کاری که میخوام انجام بدم اینه که مقادیر سطر دوم شیت input ستون های B C D E F رو بیارم توی شیت Show توی یه همون سطر دوم ولی با ستون های متفاوت بشونم و از این به بعد هرچیزی که داخل شیت input هر سطری که اضافه میکنم یه سطر توی شیت show بشینه و همون مقادیر شیت Input داخلش اضافه بشه
در مورد این موضوع کسی میتونه کمکی کنه ؟
سلام / قاعدتا باید بتوانید با همین فرمول ساده اینکار را انجام دهید و باید فرمولها را در چندین سطر خالی شیت show کپی کنید تا اگر در شیت input داده ای اضافه شد، این فرمول ها آن را بیاورند. راه حل دیگر پیشرفته دیگر، استفاده از power query اکسل است که در همین سایت ویدئوهای آن را می توانید ببینید.
سلام آیا توی گوگل شیت، امکان خوندن داده از یک اسپرید شیت دیگه رو داریم؟
سرکار خانم ندا / با سلام
اکسل به سادگی میتواند با فرمول نویسی،دادههای یک «فایل اکسل دیگر» را بخواند. کافی است که هر ۲ فایل همزمان باز باشند و شما در هنگام فرمول نویسی، روی یکی از سلولهای فایل دیگر کلیک کنید تا آدرسی ماند زیر تولید شود:
اما توجه کنید که شما در سوالتان نوشتهاید که از یک «اسپرید شیت دیگه» و اگر احتمالا منظورتان فایل سایر نرم افزارهای «اسپرید شیت» مانند گوگل شیت و یا CALC است، گمان نمیکنم که اکسل بتواند دادههای این فایلها را بخواند و باید آن فایلها با فرمت اکسلی ذخیره شوند.
نکته مهم دیگر آن است که این روزها ما معمولا از Power Query برای خواندن دادها از یک اسپرد شیت دیگر به راحتی میتوانیم استفاده کنیم. یعنی Power Query میتواند دادها هر فایل اکسلی و یا حتی گوگل شیت را بخواند و سپس در یک فایل اکسل آنها را Load کنیم.
بله منظورم گوگل شیت هستش، دو تا فایل اسپرید شیت گوگل.
Power Query امکان خوندن داده ها رو در زمان آپدیت هم داره؟
شما فرمودین داده ها رو از گوگل شیت بخونه و به اکسل بده، آیا از اسپرید شیت به یه اسپرید شیت دیگه هم میتونه بده؟
با سلام
من متوجه گوگل در سوال شما نشدم. بله اینکار به سادگی با تابع IMPORTRANGE شدنی است. اینجا را ببیند.
Sample Usage
IMPORTRANGE("https://docs.google.com/spreadsheets/d/abcd123abcd123", "sheet1!A1:C10")
IMPORTRANGE(A2,"B2")
Syntax
IMPORTRANGE(spreadsheet_url, range_string)
فرمودید که با Power Query در زمان آپدیت شدن هم امکان پذیر است، به نظرم بله امکان پذیر است اما تست نکردهام. زیرا گوگل شیت چیزی را در RAM دستگاه نگهداری نمیکند و تقریبا هر لحظه دادهها را واقعا ذخیره میکند بنابراین اگر با پاورکوئری خواندید، همه چیز را در لحظه خواهید داشت.
لطفا اگر تست کردید، نتیجه را با من هم به اشتراک بگذارید.
سلام. من یه جدولی دارم که اطلاعات هر سطرش از شیت های متفاوتی میاد ، من میخوام وقتی فرمول برای یه سطر جدول نوشتم وقتی اون فرمول را برای کل سطرهای اون جدول دراگ کردم و کشیدم پایین توی فرمول نام شیت ها هم تغییر کنه ، من اسم شیت ها رو از یک تا سی گذاشتم . میخوام وقتی فرمول میکشم پایین نام شیت که یک هست تا سطر سی جدول تبدیل بشه به عدد سی ، چیکار کنم عدد آرگومان اول که آدرس سلول هست با کشیدن به پایین تغییر کنه و مثلا از یک شروع بشه تا سی
سلام / برای آنکه بتوانید نام یک شیت را به صورت پارامتری کنید از تابع INDIRECT به صورت زیر استفاده میشود. فرض کنید که نام شیت در سلول A1 تایپ شده است و میخواهید ستون B آن شیت را جمع بزنید.)
اما استفاده از تابع INDIRECT مجاز نیست زیرا بسیار کند است. راهکار درست این است که اطلاعات همه شیتها را با پاورکوئری اکسل ادغام کنید و سپس به راحتی با فرمولهایی مانند VLOOKUP دادهها را بخوانید.
خوب بود و قابل فهم
جالب ممنونم از اطلاعات خوبتون موفق باشید من میکائیل از کردستان ایران مهاباد
اینکه از مثال استفاده کردین برای فهم بیشتر عالی بود
سلام
میشه به جای اشاره مستقیم به اسم شیت بگم از سلول فلان نام شیت بخونه
مثلا عددی که در A1
دورن شیتی که نام آن در سلول مثلا B1 می باشد
دمت گرم آقا خوب بود.